Einstellen der Textgröße mit Android PDFDocument basierend auf PDF-Dokument / Leinwandgröße

9

Ich versuche, ein LinearLayout mithilfe der Android PDFDocument-Klasse in PDF zu konvertieren. Ich pumpe das Layout in eine ViewGroup auf, skaliere die Ansicht auf die Leinwand und zeichne auf die Leinwand. Ich habe Erfolg beim Erstellen der PDF, aber die Schriftgröße wird basierend auf der Geräteauflösung / -dichte und nicht der PDF-Größe gezeichnet. Im Grunde ist die Schriftart am PDF-Dokument sehr groß. Ich glaube, das liegt daran, dass View in Bezug auf die Abmessungen und die Dichte des Gerätebildschirms gezeichnet und dann auf die Leinwand übertragen wird.

Ich habe versucht, die Dimensionen in px und pt zu setzen, aber ich kann es nicht richtig finden. Die Schrift erscheint in der richtigen Größe, wenn die Abmessungen sehr klein sind (1-2dp oder px), aber ich weiß, dass wenn ich dies über verschiedene Geräte durchführe, ich Probleme haben werde.

Was ist der beste Weg, um den Text und die Dimensionen so zu skalieren, dass sie auf der fertigen PDF-Datei die passende Größe haben (ca. 12pt Font bei 300 dpi)? Müsste ich einige Dimensionen aus dem Gerätebildschirm ziehen und dann die Größe aller Ansichten auf der Grundlage eines Verhältnisses zwischen dem Gerät und der PDF-Leinwand ändern?

Mein Kopf ist wund, wenn er ihn von der Wand schlägt.

Danke, Andy

%Vor%
    
aterbo 14.12.2015, 00:09
quelle

2 Antworten

0

Ich fand das auch ein Problem mit meinem PDF-Dokument. Anstatt also die Ansicht auf meiner Leinwand zu zeichnen, habe ich ein TextPaint-Objekt erstellt und die Methode canvas.drawtext ("string", x-position, y-position, textPaint) verwendet.

    
TrackDave 16.12.2017 22:57
quelle
0

Versuchen Sie canvas.setDensity(72) , wie es für Bitmaps funktioniert? Siehe hier .

Oder verwenden Sie 72 für die PrintAttributes.Resolution ?

    
user1712200 25.12.2017 19:41
quelle

Tags und Links