Beiträge von rabatscher

    Es funktioniert, wenn ich folgenden code benutze:

    Diesen Code habe ich quasi aus der Datei WPPDFWP.pas (ab zeile 269) kopiert. Dabei ist fSource.Memo._Paintpages[i].WidthTw immer gesetzt aber eben auch falsch herum, falls Landscape = True ist.

    Mit dem obigen Code funktionierts mal - allerdings ist noch ein kleines Problem mit einem Bild, das falsch skaliert gezeichnet wird.

    Im Originaldokument ist füllt das Bild ca 1/4 der Landscape Seite aus (2x2 Tabelle - eine Zelle wird vom Bild ausgefüllt) . Im PDF Ausdruck ist es aber viel kleiner skaliert.
    Allerdings liegt das soweit ich gesehen habe nicht am pdf drucken selber sondern am Zwischenschritt - bei dem ich das RTF bearbeit und als WPT File speichere.

    Um noch ein bischen klarer zu machen - hier noch ein bischen code:

    report laden und speichern:


    Code
    richEdit := TWPRichText.CreateDynamic;     try        richEdit.Memo._CodePage := 65001;  //utf-8        if Assigned(fParams) then           fParams.Values[cRepRepeats] := '0';        richText.LoadFromStream(inStream);        // Fill report with items        richEdit.WorkOnText := wpBody;        richEdit.ReformatAll;        richEdit.SaveToStream(outStream, 'WPT');     finally            richEdit.Free;     end;

    Report mit items befüllen:


    Code
    repeat            // find a tag            // select whole item              richText.SetSelPosLen(StartTagPos, richText.Finder.Position - StartTagPos + Length(cItemEndTag));            // delete selected text            richText.SelText := '';             // convert the items name to the replace text store in "text"            // insert the text at the current cursor position            richtext.InputStringW(text);   until no tag found any more


    after that the report is stored in the "wpt" format on disk

    from this "meta" report the pdf is generated using the wpdf component:

    Code
    richText := TWPRichText.CreateDynamic;     try        richText.Memo._CodePage := 65001;  //utf-8        // fill in report (second pass - but actually does nothing)        FillReportWp(inStream, richText, nil, cMaxNumPass);        // this is the time where the localized images have to be created        for counter := 0 to richText.TextObjects.Count - 1 do        begin             obj := richText.TextObjects.List[counter];             if obj is TLocWPImage then             begin                  TLocWPImage(obj).DataObj := fDataObj;                  obj.Transparent := True;             end;        end;         // todo: remove this line - debugging only        richText.SaveToFile('D:\voucher.wpt');        // #################################################        // #### choose pdf printer        try           Result := PrintPdf(richText);        except              on E : Exception do              begin                   AddGlobalLog(llError, E, fDataObj);                   AddLog('Pdf printing failed: ' + E.Message);                   Result := nil;              end;        end;     finally            richText.Free;            fOnRepProgress := fOnRepProgressPDF;     end;

    print pdf looks like:


    Note that the code above generates a portrait pdf from an originaly landscape rtf file.

    The rtf was created using Word2000 and stored as a rtf file. The file itself contains a table (2x2 fields) including some text and some images and I'm using WPTools6.

    I can provide the resulting wpt and the rtf file if necessary.

    Ich bin über ein kleineres Landscape Problem gestolpert:

    -) ich lade einen RTF Report in Landscape
    -) speichere einen geänderten Report im wpt Format ab (nachdem ich
    nache einigen Keywörtern gesucht habe und diese geändert habe)
    -) lade das File wieder -> richtext.header.landscape ist auf true gesetzt (stimmt ja auch) allerdings ist die Seitenbreite und Höhe immer noch so als ob das Dokument im Portrait Modus gespeichert ist.

    -) das hat dann natürlich auch starken Einfluss auf das darau generierte PDF...

    hat jemand eine Idee?

    Hallo,

    In unserem Reporting-Tool benutzen wir spezielle Skripttags, um Teile eines Reports zu löschen (falls nichts vorhanden ist). Dieses automatische Löschen
    besteht im Prinzip aus:

    1.) Selektieren des Bereichs (richText.SetSelPosLen)
    2.) Löschen: richTest.InputString(#127);
    3.) Löschen einer leeren Zeile in einer Tabelle:
    if richText.InTable and richText.ActivePar.IsEmpty then
    richText.DeleteRow;

    Diese Vorgehensweise scheint Probleme zu haben, wenn viele von Word generierte Formatvorlagen im Spiel sind, z.B.: wird aus einem ursprünglich normalem Text ein Fett gezeichneter.

    Die Routine funktioniert wunderbar, wenn ich in Word (alle unsere Reports werden in Word quasi "geskinnt")
    die Option
    Format->AutoFormat->Optionen->Auto Format während der Eingabe->Formatvorlagen basierend auf Formatierung definieren
    ausschalten, den ganzen Text auf die Formatvorlage "Standard" umstelle und die Formatierungen einzeln vornehme.

    Ist das Problem bereits bekannt oder gibt es in WPTools noch eine Einstellung, die zu beachten ist?

    mfg
    Rabatscher Michael


    P.S.: Die erstellen Reportvorlagen wurden mit Word2000 erstellt.

    Hi folks,

    In my delphi project I statically link the wptools sources into my projects - also adjusting the wpinc.inc file a bit. Basically I include there the png object and statically link the wpdf component into my project.

    Unfortunately the compilation of the included wptools pascal files always created some artificial warnings. Our automatic building tool and our internal policy does not allow any messages nor warnings so the build always breaks. I always have to change the sources such that these warnings disapears so I wanted to ask if that could be changed in future releases (or is there something I missed?).

    Is there actually a reason why these messages are included in the code - I don't see any relevance in them....

    Also there are some compiler warnings in wpctrMemo.pas resulting in an possibly unassigned variable on lines 6461 and 11848 .

    best regards
    Mike

    Hallo,

    ich habe wieder einmal ein kleines Problem mit dem Erstellen von PDF's, die Japanischen Text beinhalten.

    In meiner Testumgebung debugge ich nie Dienste, sprich die Anwendung (ein apache server) läuft immer in einer Konsole. Komischer weise funktioniert das Drucken eines PDF's mit Japanischen Zeichen so sehr gut. Allerdings wenn ich die Anwendung als Service start bekomme ich überhaupt keinen Text mehr (auch wenn das Service unter demselben user account gestartet wird).

    Ein schneller Workaround ist mir gelungen, indem ich das CidFontMode
    Property des TWPPDFPrinter Objekts von wpCIDUnicode auf wpCIDOff gestellt habe. Ich werde es mal so lassen würde aber schon gerne wissen, was da schief gelaufen ist.

    Ich habe die wpdf Internent Lizenz 3.61 (also mittlerweile die letzte Version).

    lg
    Michael Rabatscher

    Funktioniert das Erstellen eines PDF's des verlinkten Dokuments (aus dem ersten Posting) bei ihnen fehlerfrei mit eingeschaltenem CID Modus?

    Kann es dann eventuell sein das meine Version (ich glaube es ist die
    Server Version mit beigefügter 3.31 dll) veraltet ist? bzw wo würde ich im pdf source sehen welche Version ich genau installiert habe?

    mfg
    Rabatscher Michael

    hm...

    Wenn ich den CID Modus abschalte scheint es zu funktionieren....
    Ich dachte bisher, dass ich für meine Unicodestrings diesen Modus aktivieren muss - hat das abschalten sonst irgendwelche Einflüsse/Nebenwirkungen?

    lg
    Mike

    Update: Einen Unterschied konnte ich nur bei den eingebetteten Schriften sehen - im CID Modus werden die Arial Schriftarten anders eingebettet...

    Hallo!

    Ich habe ein kleines Problem beim kreieren eines pdf's mit japanischen Zeichen (siehe Link)


    Das RTF lässt sich in Word (bei mir Word2000) öffnen und es scheint auch alles zu passen nur wenn ich versuche ein pdf daraus zu machen rutscht das erste Wort der Kopfzeile in den Body der zweiten Seite. Auch ist das Spacing der Tabelle der zweiten Seite nicht wirklich schön.

    Hat da jemand eine Idee?

    Folgenden Code benutze ich um das PDF zu erstellen:

    Ich habs auch direkt mit der Klasse TWPPDFExport mit den selben Einstellungen versucht. Leider mit dem gleichen Ergebnis.

    lg
    Michael Rabatscher

    danke für den tip, ich habs geändert, mit dem Ergebnis,
    dass die Kopfzeile zwar geparst wird aber nur auf jeder 2ten Seite erscheint.

    Darf ich ihnen das Dokument eventuell schicken, ich bin mit meinen Möglichkeiten leider etwas erschöpft.

    (ich hab übrigens wptools 5).

    Hallo,

    Folgendes Problem:
    Ich benutze Word2000 um unsere Reports in RTF zu erstellen. Die Reports beinhalten spezielle Tags, die ich dann später durch Werte/Grafiken ersetzte (ähnlich dem mail merge). Diese Tags suche ich mittels des Finder Objekts im TWPRichText

    Für die Kopf/Fusszeilen benutze ich folgenden Code:

    Das funktioniert soweit auch ganz gut nur hat ein Kunde von uns einen dieser Reports geändert - wobei er sagt, dass er in einer Kopfzeile nur ein Komma eingfügt hat - und nun funktioniert dieser Ansatz nicht mehr. Der Finder findet ab Seite 2 keine Tags mehr! (Es gibt eine Kopf-/Fusszeile, die erst ab Seite 2 beginnt und auf der ersten Seite anders ist). Das tückische an der Sache ist, dass wenn ich diesen Report in Word2000 lade und ihn speichere (ohne wirklich was zu ändern) der obige Code wieder funktioniert.

    Auch habe ich entdeckt, dass die Tags in der Kopf-/Fusszeile im Modus
    wpraOnOddPages gefunden werden allerdings gar nicht mehr angezeigt werden.

    Auch muss ich mich noch informieren, welchen Editor unser Kunde benutzt und falls nötig könnte ich ihnen noch das RTF - File zukommen lassen.

    Ich benutze noch WPTools5

    mit freundlichen Grüssen
    Rabatscher Michael

    Hi,

    I've got the problem that if I choose a very tiny font size (e.g. 1) my pdf output shows up with either overlapping textual areas or that the gap between two characters is far too large. Has anyone an idea what here could be wrong? Is it eventually some kind of rounding issue?

    Note. Normally I don't want to use such tiny fonts but one of the customers pretended to included an xml string which should not be visible but can be extracted from the pdf itself. Normally I would say that this is not a problem since I think that somewhere the text should be within the pdf but for the tool they use it is a problem...

    Ist es irgendwie möglich mittels der methode TWPRichText.InputString oder
    TWPRichText.InputStringW die automatische Seitenzählung/anzahl einzufügen um in der Fußzeile Seite x/y anzeigen zu können?

    Wenn nicht wie geht das sonst?

    Hi,

    I received a report from one of our customers who wants to automatically extract information from the pdf using PDFTron.

    They reported following issue:

    Zitat

    We looked into the file and the font data is corrupted (as we expected).
    The offending font has object number 21 (you can also check with the
    following PDFTron CosEdit path:
    trailer/Root/Pages/Kids/0/Resources/Font/F1/DescendantFonts/0/FontDescriptor
    /FontBBox).

    FontBBox is [0 0 0 0]

    basically it seems that the PDFTron tool can't handle these 0 values. Is there a way to set the these values or is this a bug?

    By the way I use a server version of wPDF V3

    Die folgende Schleife macht genau das was ich brauche:


    Ich habe zwei verschiedene Klassen von TWPOImage abgeleitet wobei die erste Klasse eine Art Lokalisierung beinhaltet, die dynamisch beim Zeichnen eingefügt wird.

    Jetzt brauche ich aber eben eine zweite Klasse, die keine dynamischen Elemente mehr beinhaltet (die dynamische Klasse beinhaltet einige Properties, die ich in einer weiteren Anwendung nicht befüllen kann) - deshalb die Idee in einem Zwischenschritt alle Elemente der Ersten Klasse durch die der zweiten - statischen - auszutauschen.

    prinzipiell würde die Schleife so aussehen:

    Wie geht das am Besten?

    Danke im Voraus
    Rabatscher Michael