0
我正在嘗試使用Apache PDFBox創建PDF文件,並且內容是每行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
沒有框架。您需要使用數學方法,即獲取字符串長度,行長度以及計算字體大小(或字形間的空間大小)。與itext不同,PDFBox的水平相當低。 –