Я пытаюсь создать PDF-файл с помощью Apache PDFBox, а содержимое - текстовое сообщение из 80 символов в строке. Когда я пытался создать PDF-файл, я заметил, что пространство, _ и другие символы занимают различную ширину линии, и я не мог форматировать их одинаково, как то, что мы делаем в текстовых редакторах. Может ли кто-нибудь помочь мне отформатировать их?Равномерное пространство символов в Apache PDF Box Создание PDF
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class SampleTest {
public static void main(String[] args) throws Exception {
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
String text = "---------------------------\n" +
"------------ABC------------\n" +
"A B\n" +
"***************************\n" +
"A B C D E F G H I \n" +
"---------------------------";
String[] textArray = text.split("\n");
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, 10);
contentStream.setLeading(4f);
contentStream.newLineAtOffset(40, 750);
for(String line : textArray){
contentStream.showText(line);
contentStream.newLine();
contentStream.newLine();
}
contentStream.endText();
contentStream.close();
document.save("C:\\PDF-Samples\\file.pdf");
document.close();
System.out.println("Done");
}
}
Спасибо за помощь! Это сработало. Знаете ли вы, может ли какая-либо структура одинаково размещать содержимое для заполнения строки? – Raja
Я имею в виду масштабирование текстовой строки. – Raja
Нет рамок для этого. Вам нужно использовать математику, т. Е. Получить длину строки, длину строки и рассчитать размер шрифта (или размер пространства между глифами). PDFBox довольно низкий уровень, в отличие от itext. –