• Habe ein Problem mit DrawMetaFileEx.
    Ich wollte gern direkt aus meiner Druckvorschau (simple List von MetaFiles) eine PDF generieren.

    Nutze dafür DrawMetaFileEx, da ein Canvas.Draw dabei fehlerhafte Textausrichtungen mit sich zieht. Nun habe ich allerdings das Problem, dass bei Unterstrichenem Text die Linie seeeehr weit ÜBER dem Text zu finden ist. Also im PDF. Auf der Druckvorschau sieht es noch bombig aus.

    Wie kann ich dem Abhilfe leisten?

    Achja... so zeichne ich in den PDF-Printer

    Code
    WPPDFPrinter1.StartPage(794,1123,96, 96, 0);
         WPPDFPrinter1.DrawMetafileEx(0,0,round(794),round(1123),PrintPreview.Pages[i].Handle,96,96);
         WPPDFPrinter1.EndPage;
    • Offizieller Beitrag

    Welche version ist dies von wPDF?

    Es gab da problem da in PDF unterstriche keine font eigenschaft sind sondern manuell gezeichnet werden müssen. Je nachdem wir das koordinatensystem organisiert ist kann ist die linie dann immer wo anders. Kan man nur anhand der EMF debuggen.

    WPPDFPrinter1.DrawMetafileEx(0,0,round(794),round(1123),PrintPreview.Pages[i].Handle,96,96);

    Besser all integer als 0 übergeben (also berite/höhe und auflösung. Damit sollte die grösse 1:1 aus der EMF gelesen werden.

  • Mein MetaFile ist aber in 2100 x 2980 organisiert, damit in der Druckvorschau die Schriften nicht so verzerrt sind, bei verschiedenen MapModes. Ich wollte nicht extra n Workaround schreiben für die GDI.

    Aber selbst wenn ich für alle Bemaßungen 0 übergebe, ist das Problem mit den Strichen immernoch da. Hatte einen Versuch gemacht, einfach mit WPPDFPrinter.Canvas.Draw Dann klappt das mit dem Unterstreichen vernünftig, allerdings sind dann alle gedrehten und senkrechten Textstellen völlig hinüber und davon habe ich in meinen Tabellenköpfen nunmal weitus mehr.

    Inwiefern an der EMF debuggen? Sollt ich die ggf. irgendwohin mailen?

    @Version: keine Ahnung, was das vorher war, aber hab vorhin die aktuelle gesaugt und Fehler ist noch da.

    • Offizieller Beitrag

    Hallo,

    Bei der PDF ausgabe aus einer metafile kann man auf StartPage/EndPage verzichten. Dann wird die Grösse aus der metafile genommen.

    Grösse von DinA4 sollte 2100 x 2970 sein.

    Um zu erreichen dass Drucker ordentlich ausgeben solte man mit SetViewPort API die logische auflösung einstellen, gut ist 600 dpi.

    Die Fonthöhen solte man nicht als 'Size' angeben, sonder über Font.Height - auszurechnen nach der logischen auflösung.

    Die metafile bitte an "support at wptools.de" mailen

    beste Grüsse,

    Julian Ziersch