Beiträge von wpsupport

    OnGetSpecialText kann verwendet werden um bestimmte Header für bestimmte Seiten einzublenden. Diese Header können dann auch verlinkte Textboxen haben. Diese Texte dürfen aber nicht in diesem Event hergestellt werden da man sonst eine Recursion im Reformat hat.

    Grundsätzlich ist die Frage welches Problem diese Textboxen lösen. Ich hatte schon gesagt, dass ein Formular Editor so nicht realisierbar ist, dies zumindest nicht so beabsichtigt ist.

    OnMeasurePage kann prinzipiell wie oben verwendet werden - nur muss dann nach dem Reformat noch mal ReformatAll aufgerufen werden und dann keine neuen textbox erstellt werden.

    OnMeasure wird im Reformat aufgerufen. Wenn man dort schon neuen Text erzeugt was ich nicht empfehlen kann, dann darf man dies nur einmal machen, also bereits erstellte Elemente erkennen und wieder verwenden.

    Grundsätzlich sind Texte nach der Erstellung unsichtbar und werden erst nach der Initialisierung und Reformat sichtbar.

    Ich glaube Ihr Ansatz erwartet etwas vom Editor für das er nicht gebaut wurde.

    Sorry, you cannot use WPViewPDF in WPF, only in WinForms.

    License is in royalty free.

    Annotations can be changed by direct access to the PDF objects.

    This works by reading the XML used internally for the annotation, change certain properties and write it back.

    A free text can use XML like this:

    Code
    ?xml version="1.0" encoding="utf-8"?>
    <neutral value="###"></neutral>
    <annot X="283.07" Y="44.43" W="141.99" H="60.92" prp.n.Subtype="FreeText" Font="Arial" Font-Size="0" _mult="3.28" prp.s.Contents="avyxcvxc"></annot>

    The demo uses this code to show an editor and writes back the XML

    Zitat

    Auf der ersten Seite steht zum Beispiel der Adressblock, die Rechnungsnummer, Projektnummer etc. und die sollen mit einem eigens entwickelten Formulardesigner frei positionierbar sein, deswegen die Inputtextboxen frei positionierbar .

    Ich halte dies für keine gute Idee. Textboxen können verwendet werden um alles um die Rechnung zu gestalten, aber für den Inhalt würde ich sie auf gar keinen Fall nehmen. Ich weiss auch nicht was der Vorteil sein wird. Die erzeugten Dokumente lassen sich nicht als DocX speichern da die Textboxen ja auf jeder Seite vorkommen sollen. Am 9.10. hatten Sie mich gefragt: "ich versuche ... in einem Dokument Texte fest zu positionieren, also wie bei einem Briefkopf den Adressblock. Rechts davon soll ein ebenso fest positioniertes Image sitzen (Firmenlogo)" - von dieser Nutzung bin ich bislang auch ausgegangen. Die Textboxen sollten das Problem lösen.

    Zitat

    Wenn möglich oder notwendig erstelle ich auch mal ein Miniprojekt was das demonstriert, kann ich das hier irgendwie hochladen?

    Meine e-mail kennen Sie ja. Ich muss allerdings den support hierzu berechnen, da dies keine Standard Nutzung ist. Es sind inzwischen auch schon eine menge Anfragen.

    Ein Verschwinden des Textes kann ich nicht nachvollziehen. Intern ist es so, die Textbox enthält text welcher an der Grösse der Box umgebrochen wird. Evtl. wird eine 2. Seite erstellt welche dann aber nicht mehr angezeigt wird. Im Zweifelsfall speichern Sie das Dokument bitte im WPT Format und schicken es mir. Ich sehe es mir dann hier an und kann beurteilen, ob WPTools im Sinne des Erfinders arbeitet.

    Grüsse,

    Julian

    Die Textboxen können auch an Seite oder am Absatz gebunden sein. Wenn am Absatz gebunden, stehen sie immer unterhalb.

    Wenn am Header gebunden fängt "ihre" Seite aber an der Oberkante des Headers an, RelY muss demnach negativ sein.

    Zur Eingabe sind solche Boxen ohnehin nicht geeignet, sondern nur zur Ausgabe, Briefkopf o.ä.

    Ich weiss jetzt nicht was Sie machen wollen, aber einen Formular Editor kann man damit nicht bauen.

    Mehrseitige Textboxen werden nicht unterstützt - Textboxen zeigen immer nur den Text der in die Box passt, bzw. dessen erste Seite die leer ist, wenn dort nur #13 stehen.

    wplayLayout zeigt keine Header texte an und damit auch nicht die Textboxen, welche dort verankert sind.

    Daher geht nur full layout, kein Normal o.a.

    // var RTFDataBlock : TWPRTFDataBlock;

    RTFDataBlock := WPRichText1.HeaderFooter.Get(wpIsHeader,wpraOnFirstPage,'');

    WPRichText1.ActiveText := RTFDataBlock;

    WPRichText1.InputTextbox('', 2000, 300, true).RelY := 300;

    WPRichText1.InputString('Diese Box steht im Header');

    WPRichText1.ActiveText := RTFDataBlock;

    WPRichText1.InputTextbox('', 2000, 300, true).RelY := 2000;

    WPRichText1.InputString('Diese Box steht auch im Header');

    WPRichText1.ActiveText := WPRichText1.BodyText;

    wpraOnFirstPage habe ich zum Testen genommen.

    Wenn AttrHelper.Get...() FALSE zurück liefert, ist das Attribut nicht an der Position des Zeichens nicht definiert sondern wird geerbt, vom Absatz vom Absatzstil oder von WPRichText.DefaultAttr, in dieser Reihenfolge.

    Um die Schriftgrösse des Absatzes (bzw. Stiles) auszulesen kann man

    value := par.AGetDefInherited( WPAT_FontSize, DefaultFontSize )

    verwenden. Dieser code müsse dann also in dem FALSE zweig ausgeführt werden.