Мне нужно добавить текст в файлы PDF / A с помощью библиотеки Apache PDFBox для Java. Проблема в том, что, поскольку это должен быть действующий файл PDF / A, все используемые шрифты должны быть встроены в него. Я знаю, что могу встроить шрифт TTF с помощью PDFBox, но я бы не хотел предоставлять файл шрифта вместе с приложением, поэтому мне было интересно, есть ли способ встроить один из стандартных шрифтов, доступных в PDFBox, как если бы он был внешним.
Например, когда я что-то пишу с использованием одного из стандартных шрифтов, валидатор PDF жалуется на это:
Я использовал следующий код для написания текста:
PDFont standardFont = PDType1Font.HELVETICA_BOLD;
PDPage pag = new PDPage();
pag.setResources(new PDResources());
PDPageContentStream contentStream = new PDPageContentStream(pdfFile, pag);
//Begin the Content stream
contentStream.beginText();
//Setting the font to the Content stream
contentStream.setFont(standardFont, 12);
//Setting the position for the line
contentStream.newLineAtOffset(25, 500);
//Adding text in the form of string
contentStream.showText("JUST A SAMPLE STRING");
//Ending the content stream
contentStream.endText();
//Closing the content stream
contentStream.close();
pdfFile.addPage(pag);
pdfFile.save(file);
pdfFile.close();
Есть ли возможность принудительно встраивать шрифт при его установке?
Заранее спасибо,
В PDFBox встроен только один шрифт. Вы можете использовать это так:
PDFont font = PDType0Font.load(doc, SomePdfboxClass.class.getResourceAsStream(
"/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"));