2016-09-19 3 views
1

Ich kann keine Lösung für eine sehr einfache Frage finden, wie kann ich eine benutzerdefinierte Farbe für einen Text/Linie/etc. Verwenden von iText7 in Java-Code?wie benutzerdefinierte farbe mit itext 7

 float[] col = new float[]{0,0.5f,0}; 
     Color szin = Color.makeColor(Color.GREEN.getColorSpace(), col); 
     Canvas canvas = new Canvas(pdfCanvas, pdfDoc, page.getPageSize()); 
     canvas.setProperty(Property.FONT_COLOR, szin); 

Zuerst habe ich keine Ahnung über hatte, wie ich kann:

I found this reply for iText5 aber in der Version 7 there is no BaseColor Klasse ...

Antwort

1

ich die folgende Lösung nach einiger Try-and-fail-Schleife gefunden bekomme/setze den Farbraum, was als erster Parameter der makeColor-Methode benötigt wurde. Nach der Anmeldung der folgenden

LOGGER.info(Color.GREEN.getColorSpace().getPdfObject()); 

aus sah ich, ist es eine RGB-verwandten Informationen, vielleicht soll ich den zweiten Schwimmer [] mit 3 Elementen (nicht 4, wie cmyk) angeben.

Info: 2.464.035 [http-listener-1 (3)] INFO fornax.hu.pdf.generate.PdfCreator2 -/DeviceRGB

Das andere große Problem war, wie soll ich den Schwimmer Werte. Logischer Tipp war für ein dunkelgrünes 62.172,62, aber ich sah nichts. Ich musste erkennen, dass 0 als 0 wirkt, aber jede Zahl größer als 1 wirkt als 255 in der Ergebnisfarbe, also habe ich versucht, Werte zwischen 0 und 1 zu setzen, und ich habe den JACKPOT!

test color 1 mit {1,0.5f, 0} test color 2 mit {0,0.5f, 0}

Besonderer Dank für iText7 Dokumentation Autoren, die kein Beispiel für diese sehr, sehr grundlegende Dinge einfügen nicht in der Lage waren für Anfänger wie ich.

+1

Fühlen Sie sich frei eine Pull-Anforderung zu übermitteln, die javadocs verbessert: https://github.com/itext/itext7/pulls. Was die Dokumentation auf http://developers.itextpdf.com/examples-itext7 angeht, ist dies ein fortlaufender Prozess und die Dokumentation wächst fast täglich, sehr oft basierend auf Stack Overflow-Fragen wie der Ihren. –

3

Ich benutze diesen Code die Textfarbe anpassen:

com.itextpdf.kernel.color.Color myColor = new DeviceRgb(255, 100, 20); 
Paragraph colorPara = new Paragraph("text with color").setFontColor(myColor); 
+0

Schön, es ist besser als das, was ich herausgefunden habe. (Neue DeviceRgb hat einen anderen Konstruktor mit float-Parametern, und dieser verwendet das 0-1-Intervall, aber der Konstruktor, der int-Parameter verwendet, ist entwicklerfreundlicher) – Balagex

Verwandte Themen