WPViewPDF: In bestimmten Zoomstufen wird Text abgeschnitten?

  • Für meinen Brötchengeber bewerte ich gerade die Einbindung einer PDF-Viewer-Komponte und habe WPViewPDF ins Auge gefasst. Insgesamt bin ich recht zufrieden mit WP, wenn nicht die Ausgabe von fettgedruckten Texten in verschiedenen Zoomstufen abgeschnitten würde.

    An diesem PDF (mit DynaPDF erzeugt) ist das nachvollziehbar:
    So sieht's ziemlich korrekt aus (mal davon abgesehen, daß die letzte 0 in der Zeile Endbetrag schon etwas "angeknabbert" ist):

    [Blockierte Grafik: http://www.hausmannwynen.de/oss_downloads/hw/wpcubed/wppdf_ok.png]

    ... und so stellt es sich dar, wenn man nur einen Prozentpunkt höher zoomt:
    [Blockierte Grafik: http://www.hausmannwynen.de/oss_downloads/hw/wpcubed/wppdf_nok_marked.png]
    (hier ohne meine Kritzeleien)

    Der verwendete Zeichensatz dort ist Arial 10 fett. Im Gegensatz zu dem anderen Text (Arial 9) fällt beim Zoomen auf, daß die fettgedruckten Fonts nicht stufenlos mitgezoomt werden, sondern "springen". Zudem gibt es auch Zeichensätze, wo das "Springen" und Abschneiden auch dann auftritt, wenn nicht fett ausgewählt ist, z.B. bei "Cambria".

    Ich habe neben wPDFViewDemo02.dll auch wp_type1ttf.dll und zlib1.dll im Programmverzeichnis. Die von WPCubed gelieferte Demoanwendung PDFView.exe zeigt ebenfalls dieses Problem. Der Adobe-PDF-Viewer zeigt korrekt an.

    Ist das ein Problem, das nur die Demo-Version betrifft, oder hätte ich dieses Problem auch nach einer Lizenzierung? Kann es beseitigt werden?


    Eine andere Sache noch: Wenn man den sichtbaren Ausschnitt mit der Maus verschiebt und dabei die Seite wechselt, wird leider kein MSGPDF_CHANGEVIEWPAGE-Event verschickt (auch hier an der Demo-App nachvollziehbar: Die Seitenanzeige wird nicht angepasst).

    Vielen Dank für Antworten,
    Jörg.

    (Edit: Schade - die Forenvorschau zeigt die Bilder und Links an, der fertige Beitrag leider nicht mehr...)

    • Offizieller Beitrag

    Hallo,

    Bilder müssen wir hier leider aus dringendem Anlass sperren. Ich sehe die Bilder aber.

    Die Anzeige wird hier durch das rendern der eingebetteten Fonts durch "FreeType" beschnitten, die Ausgabe erfolgt in eine Bitmap.

    Sie können das "advanced font rendering" abschalten, das geht über das Kommando

    COMPDF_AdvancedFontDrawing = 135

    Generell gibt es leider immer Rundungsfehler und vereinzelt dadurch verlorene Linien.

    Es ist übrigens eine bekannte Unsitte von "Arial", dass die Anzeige beim Zoomen springt, dies können Sie sogar in Word sehen.
    Adobe hat eine bessere Font engine integriert.

    Die sache mit MSGPDF_CHANGEVIEWPAGE werd ich prüfen.

    Beste Grüsse,
    Julian

  • Vielen Dank für die Antwort. Advanced Font Rendering abzuschalten macht die Sache leider noch schlimmer - dann wird auch noch Standard-Arial abgeschnitten.

    Ich habe auf der Suche nach einer Lösung nun probiert, zur Bildschirmdarstellung die WPPDF-Ausgabe auf einen MemoryDC zu rendern und diesen skaliert darzustellen - mit durchaus ansehlichen Ergebnissen.

    Ein Problem ist dabei aber besonders ins Auge gefallen: bei farbig hinterlegten Texten wird der gedruckte Text nicht transparent dargestellt.

    Das ist das zugehörige PDF und das kommt nach COMPDF_PrintHDC_SelectedPage dabei raus:
    [Blockierte Grafik: http://www.hausmannwynen.de/oss_downloads/hw/wpcubed/wp_hw2_screen.png]. Der Ausdruck sieht leider genauso aus. Die Anzeige in PDFView.exe ist ok, der Ausdruck daraus leider auch nicht.
    Der Screenshot wurde mit folgendem Code erzeugt:


    Was kann ich tun, damit die Hintergrundfarbe hinter dem Text nicht verschwindet?

    • Offizieller Beitrag

    Hallo,

    Beim rendern von text mittels der externe font engine wird zunächst eine bitmap generiert. Diese wird dann die Zeichenfläche eingeblendet. Dabei werden weiße bereiche mit dem Hintergrund ersetzt. Grundsätzlich ist es damit möglich, Schrift über ein Bild zu legen. Unter Umständen sind aber dennoch Probleme möglich.

    Die neueste Version von WPViewPDF wurde stark verbessert. Sowohl die gemappten fonts, also auch der von der fontengine ausgegebene text sollte nun wesentlich besser positioniert werden.

    Grüsse,
    Julian