Ich bekomme nicht, wie man transparenten Text mit Hilfe von pdfBOX hinzufügt.Wie man transparenten Text in pdfBOX erstellt oder dem Text mit Hilfe von pdfBOX Opazität hinzufügt?
Wie man transparenten Text in pdfBOX erstellt oder dem Text mit Hilfe von pdfBOX Opazität hinzufügt?
Antwort
Hier ist etwas, das Alpha mit 1,8 zeigt (Sie sollten 2. * verwenden, das ist ein bisschen einfacher).
PDExtendedGraphicsState gs1 = new PDExtendedGraphicsState();
gs1.setNonStrokingAlphaConstant(1f);
PDExtendedGraphicsState gs2 = new PDExtendedGraphicsState();
gs2.setNonStrokingAlphaConstant(0.2f);
Map<String, PDExtendedGraphicsState> graphicsStatesMap = page.getResources().getGraphicsStates();
if (graphicsStatesMap == null)
{
graphicsStatesMap = new HashMap<String, PDExtendedGraphicsState>();
}
graphicsStatesMap.put("gs1", gs1);
graphicsStatesMap.put("gs2", gs2);
page.getResources().setGraphicsStates(graphicsStatesMap);
cs.setFont(PDType1Font.HELVETICA_BOLD, 60);
cs.setNonStrokingColor(255, 0, 0);
cs.appendRawCommands("/gs1 gs\n");
cs.beginText();
cs.moveTextPositionByAmount(50, 600);
cs.drawString("Apache PDFBox 1");
cs.endText();
cs.setNonStrokingColor(0, 0, 255);
cs.appendRawCommands("/gs2 gs\n");
cs.beginText();
cs.moveTextPositionByAmount(70, 620);
cs.drawString("Apache PDFBox 2");
cs.endText();
cs.close();
* "aber es tut nicht wirklich Transparenz" * - was genau meinst du damit? – mkl
@mkl Ich erwartete, dass der zweite Text irgendwie mit dem ersten "verschmelzen" würde, aber es ist nicht passiert. Der zweite Text ist deutlich über dem ersten. Ich habe eine zweite Datei mit verschiedenen Farben erstellt: http://www.filedropper.com/transparent_1 –
Ein transparentes Overlay ist immer noch ein Overlay. Wenn Sie etwas wollen, das Hintergrund und Vordergrund ohne Vorliebe von beiden kombiniert, suchen Sie tatsächlich nach einem * "Rendering-Modus" * wie ** Verdunkeln ** oder ** Multiplizieren **. – mkl
- 1. PDFBox Wrap Text
- 2. Wie man einen Hyperlink in pdf mit pdfbox hinzufügt
- 3. PDFBox: Clipping-Text beim Schreiben in PDPageContentStream oder PDPage
- 4. lesen Sie den Text von einer bestimmten Seite mit Hilfe von PDFBox
- 5. pdfbox PDFBox 2.0.0 bekomme Feldposition
- 6. Wie gibt man Textpositionen in PDFBox zurück?
- 7. Wie erstellt man eine PDF-Datei aus HTML mit PDFBox?
- 8. pdf to text covers mit pdfbox in netbeans 8.1
- 9. PDF mit PDFBox schützen
- 10. Umwandlung eines Bildes in Byte [] mit Hilfe von PDFBox
- 11. Text-Extraktion aus PDF mit PDFBox 2.0.2 fehlende Klasse PDFTextStripper()
- 12. PdfBox - Text kann nicht aus der PDF-Datei extrahiert werden
- 13. Wie Hyperlink-Informationen extrahieren PDFBox
- 14. PDF-Inhalt mit PDFBox verschieben
- 15. Seitenzahlen mit PDFBox hinzufügen
- 16. PDFBox getFontSize gibt -1
- 17. Java - PDFBox - Textextraktion
- 18. Wie Zeitstempel mit Pdfbox und TimeStampToken hinzufügen
- 19. PDFBox-Importfehler in intellij
- 20. PDFBox: Extraktion von Daten aus Tabelle
- 21. PDFBox getText gibt nicht den gesamten sichtbaren Text zurück
- 22. PDFBox 2.0.0 - Entschlüsselung Passwort
- 23. PDFBox gibt nicht richtig Ausgang
- 24. Wie man Wasserzeichen zum pdf in Java unter Verwendung der Apache PDFBox hinzufügt?
- 25. Wie extrahieren Schriften PDDocument in PDFBox 2.0.2
- 26. Wie zeichne ich ein Tortendiagramm mit pdfbox?
- 27. PDFBox - verschlüsselte Datei drucken
- 28. pdfbox Fehler für die Verwendung von PDPageContentStream.drawLine
- 29. PDFBox NPE lädt Schriftarten
- 30. Pdf-Dateien mit PDFBox verschmelzen
Teil Duplikat https://stackoverflow.com/questions/4540593/draw-transparent-lines-with-pdfbox (die nicht akzeptierte Antwort sehen, einige adjustement für 2.0 benötigt) –
PDExtendedGraphicsState Graphics = new PDExtendedGraphicsState (); graphicsState.setStrokingAlphaConstant (0.5f); COSName graphicsStateName = page.getResources(). Add (graphicsState); try (PDPageContentStream cs = neuer PDPageContentStream (Dokument, Seite, true, true, true)) { cs.appendRawCommands ("/" + graphicsStateName.getName() + "gs \ n"); // zeichnen Sie Ihre Linie hier. } – sandy
Ich benutze es mit 1.8 und bekomme Fehler als Die Methode hinzufügen (PDExtendedGraphicsState) ist nicht definiert für den Typ PDResources – sandy