Font aus PDF extrahieren -> im Panel anzeigen

pzypher

Aktives Mitglied
Hallo,

ich möchte mit pdfbox Fonts aus PDFs extrahieren und diese dann als Font für mein Panel verwenden. Also im PDF ist eine Font z.B Arial eingebettet, mittels Arial möchte ich einen String auf ein Panel legen.

Doch die Extraktion funktioniert einfach nicht und ich komme nicht mehr richtig weiter:

Diese Methode extrahiert mir die Chars aus dem PDF
Java:
    protected void processTextPosition(TextPosition text) {
        
      try {
       allCharacters.add(new Chardetails(getIndex(), text.getCharacter().charAt(0), text.getXDirAdj(), text.getYDirAdj(), text.getFontSizeInPt(),
               (PDTrueTypeFont) (PDSimpleFont) text.getFont(), text.getXScale(), text.getHeightDir(), text.getWidthOfSpace(), text.getWidth()));
       } catch (IOException ex) {
           System.out.println("Fehler: "+ ex.getMessage());
       }
       index++;
    }


Hier die Klasse für die Chars aus dem PDF (Konstruktor):
Java:
    public Chardetails(int index, char zeichen, float xdir, float ydir, float fontsize, PDTrueTypeFont pdttfont, double xscale, float height, float space, float width) throws IOException {
        this.index = index;
        this.zeichen = zeichen;
        this.xdir = Math.round(xdir);
        this.ydir = Math.round(ydir);
        this.fontsize = fontsize; 
        this.font = pdttfont.getawtFont();
        this.xscale = xscale;
        this.height = height;
        this.space = space;
        this.width = width;
    }

Die pdfbox Methode getFont() gibt mir ein PDFont Objekt zurück, ich caste es mittels (PDTruetypefont) (PDSimpleFont) zu einem PDTruetypeFont Objekt und würde mit pdttfont.getawtFont() ein Font Objekt erhalten.

Hiermit wird das Panel angezeigt
Java:
    public void paintComponent(Graphics g) {
        
        //Antialiasing
        Graphics2D g2 = (Graphics2D)g;
        Object oldAntialiase =  g2.getRenderingHint(RenderingHints.KEY_ANTIALIASING);
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
        //Anzeigen
g2.setFont(getPdfchar.getFont()); //Weder diese noch untere Methode führen zum Erfolg
        g2.setFont(new Font(getPdfchar().getFont().getName(), getPdfchar().getFont().getStyle(), Math.round(getPdfchar().getFontsize())));
        g2.drawString(String.valueOf(getPdfchar().getZeichen()),0,Math.round((this.getPdfchar().getFontsize())-(this.getPdfchar().getFontsize())*(float)0.2));
    }


Ich erhalte immer folgende Meldung:

Warnung: java.lang.ClassCastException: org.apache.pdfbox.pdmodel.font.PDType1Font cannot be cast to org.apache.pdfbox.pdmodel.font.PDTrueTypeFont
java.lang.ClassCastException: org.apache.pdfbox.pdmodel.font.PDType1Font cannot be cast to org.apache.pdfbox.pdmodel.font.PDTrueTypeFont

oder solche:

Jul 17, 2012 10:13:01 AM org.apache.pdfbox.pdmodel.font.PDTrueTypeFont getawtFont
Information: Can't read the embedded font UKHXCH+UniversS-47-CondensedLight
Jul 17, 2012 10:13:02 AM org.apache.pdfbox.pdmodel.font.PDTrueTypeFont getawtFont
Information: Using font Arial instead

Wäre sehr dankbar wenn mir einer einen Denkanstoß geben könnte! Oder gibts auch andere Libraries die mir evtl helfen könnten?

Gruß
 

eRaaaa

Top Contributor
pzypher hat gesagt.:
ich caste es mittels (PDTruetypefont) (PDSimpleFont) zu einem PDTruetypeFont Objekt und würde mit pdttfont.getawtFont() ein Font Objekt erhalten.

Warnung: java.lang.ClassCastException: org.apache.pdfbox.pdmodel.font.PDType1Font cannot be cast to org.apache.pdfbox.pdmodel.font.PDTrueTypeFont

Dann caste eben zu PDType1Font anstatt zu PDTruetypefont. PDType1Font hat doch auch die AWT Methode ???:L:bahnhof:
 

pzypher

Aktives Mitglied
Laut text.getFont().getSubType() gibt es bei mir keine Type1Fonts.

Hier ein kleiner Auszug - ich lass mir Zeichen für Zeichen die Font-Subtype ausgeben.
TrueType
TrueType
TrueType
TrueType
Warnung: java.lang.ClassCastException: org.apache.pdfbox.pdmodel.font.PDType1Font cannot be cast to org.apache.pdfbox.pdmodel.font.PDTrueTypeFont
TrueType
TrueType
TrueType
TrueType
TrueType

[EDIT]Im PDF ist ganz gewiss eine Type1 Font - UniversS-47-CondensedLight aber wie oben geschrieben checkt es die PDFBox nicht.[/EDIT]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B flying-saucer-pdf Font Allgemeine Java-Themen 7
T Swing Font String Pixellänge Allgemeine Java-Themen 1
Avarion Font von StyledDocument ändern Allgemeine Java-Themen 0
F TrueType-Font in Single-Line-Font wandeln Allgemeine Java-Themen 0
B java.io.IOException: Problem reading font data. Allgemeine Java-Themen 9
T Font läd länger? Allgemeine Java-Themen 4
S Wie bekomme ich an spezielle Glyph-Kombinationen die ein Font bereithaelt? Allgemeine Java-Themen 6
S AWT Wie bekomme ich eine Liste aller chars in einem Font? Allgemeine Java-Themen 3
D character kodierung, barcode für barcode font erzeugen Allgemeine Java-Themen 4
H Monospace Font/Schriftart Allgemeine Java-Themen 2
R Font in PDF einbinden Allgemeine Java-Themen 2
Developer_X Java Applet - Font aus datei laden Allgemeine Java-Themen 15
R Font der auf allen Platformen gleich aussieht? Allgemeine Java-Themen 7
G Font richtig vergrößern Allgemeine Java-Themen 4
G Font mittels ClassLoader in .jar wirft NotFoundException Allgemeine Java-Themen 10
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
izoards Bestimmter Text aus PDF extrahieren Allgemeine Java-Themen 3
C Outlook msg-Datei Anhänge extrahieren Allgemeine Java-Themen 2
C jar Archiv im Programm aus dessen jar extrahieren Allgemeine Java-Themen 2
F Calss Datei mit allen Ressources extrahieren Allgemeine Java-Themen 5
S Robuste Methode um Text von HTML code zu extrahieren..? Allgemeine Java-Themen 6
M DLL aus jar extrahieren und als lib nutzen Allgemeine Java-Themen 24
J String filtern / XML-Code extrahieren Allgemeine Java-Themen 4
L Private Key aus KeyDatei extrahieren Allgemeine Java-Themen 2
P Tonspur aus Video extrahieren und konvertieren Allgemeine Java-Themen 2
D [win] icon aus exe extrahieren Allgemeine Java-Themen 5
J URLs aus HTML Datei extrahieren Allgemeine Java-Themen 2
D Bilder extrahieren aus EPS - Problem mit ASCII85 Allgemeine Java-Themen 2
S JavaDoc aus .class Datei extrahieren Allgemeine Java-Themen 5
T [htmlparser.sourceforge.net] Attribute extrahieren Allgemeine Java-Themen 3
B Film aus Java JAR-Archiv extrahieren Allgemeine Java-Themen 4
J PDF Content extrahieren mit JPO Allgemeine Java-Themen 5
M Embedded Files aus PDF extrahieren Allgemeine Java-Themen 3
S Daten extrahieren aus Excel Dateien (auch 2k7) Allgemeine Java-Themen 4
M TIFFs aus PDF extrahieren Allgemeine Java-Themen 4
C Textteile aus Strings extrahieren? Allgemeine Java-Themen 6
C Alle Möglichen Substrings der Länge k aus String extrahieren Allgemeine Java-Themen 9
R Text aus PDF extrahieren Allgemeine Java-Themen 2
spacegaier Kommastellen aus float extrahieren Allgemeine Java-Themen 13
P Bits extrahieren Allgemeine Java-Themen 5
K Verzeichnis rekursiv aus JAR-Datei extrahieren Allgemeine Java-Themen 6
J Packet aus JRE 6 für JRE 5 "extrahieren" Allgemeine Java-Themen 4
RaoulDuke Reguläre Ausdrücke - Daten extrahieren Allgemeine Java-Themen 3
R Text aus PDF extrahieren Allgemeine Java-Themen 1
M URL aus einem String extrahieren, mit reg. Ausdrücken? Allgemeine Java-Themen 19
M CAB Files extrahieren / entpacken Allgemeine Java-Themen 4
4 Swing Durch klicken auf Button Labels einem Panel hinzufügen Allgemeine Java-Themen 4
Thallius Swing Merkwürdiges Verhalten beim Panel Tausch Allgemeine Java-Themen 3
S Panel zur Dateiendarstellung wie in einem Explorer Allgemeine Java-Themen 12
R Panel mit 8 gleich großen "fenstern" Allgemeine Java-Themen 11
S TextDatei in Panel anzeigen Allgemeine Java-Themen 10
M RSS Feeder Panel Probleme mit Tabs Allgemeine Java-Themen 3
G AWT Panel wird nicht dargestellt Allgemeine Java-Themen 3
A gezeichnetes Objekt auf Panel identifizieren Allgemeine Java-Themen 5
F Panel wird nicht angezeigt Allgemeine Java-Themen 2
G von großem Panel auf ein kleines Panel mappen Allgemeine Java-Themen 6
MQue Popup- Menue- trennen von Panel und Aktion Allgemeine Java-Themen 6
P Image auf einem Panel mit null-Layout Allgemeine Java-Themen 8
H Problem beim Malen auf ein Panel Allgemeine Java-Themen 2
G Panel mit vielen Komponenten verbraucht viel Speicher Allgemeine Java-Themen 3
G Panel einer Klasse in einer anderen anzeigen Allgemeine Java-Themen 4
C Hilfe! Java Control Panel & Limewire Problem! Allgemeine Java-Themen 3
T Rechtecke usw mit Paint auf Panel zeichnen Allgemeine Java-Themen 5
J Panel-Hintergrundbild Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben