Einstellen von ttf für PDF auf Image in PDFbox

Ich versuche ein externes ttf zu setzen, um ein Bild aus einem PDF mit arabischen Zeichen zu rendern. Die Schriftart, die ich einstellen muss, ist "Arial", nachdem die Konsole weiterhin informiert hat, dass stattdessen das defaultFont verwendet wird von arial.

 org.apache.pdfbox.pdmodel.font.PDSimpleFont drawString
ATTENTION: Changing font on <3> from <Arial> to the default font

Hier ist mein Code:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.imageio.ImageIO;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;

    public class PdfBoxTest
     {
        public static void main(String[] args)
        {
            PdfBoxTest obj = new PdfBoxTest();
                try 
                {
                    obj.read_pdf();
                }

                catch (IOException ex)
                {
                    System.out.println("" + ex);
                }

        }

        void read_pdf() throws IOException 
        {
                PDDocument document = null; 
                try 
                {
                    document = PDDocument.load("c:/result.pdf");
                }
                catch (IOException ex)
                {
                    System.out.println("" + ex);
                }


                int i =1;
                String name = null;
                PDFont font = PDTrueTypeFont.loadTTF(document, new File( "c:/arial.ttf" ));
                font.setWidths(PDType1Font.HELVETICA.getWidths());
                List<PDPage>pages =  document.getDocumentCatalog().getAllPages();
                Iterator<PDPage> iter =  pages.iterator(); 
                while (iter.hasNext()) 
                {
                    PDPage page = (PDPage) iter.next();


                    BufferedImage img = page.convertToImage();
                    ImageIO.write(img, "png", new
                             File("C:/" + i + ".png"));


                }

            }

     } 

Antworten auf die Frage(0)

Ihre Antwort auf die Frage