按原样,此代码(在运行JVM 8的Windows PC上)在行的开头打印出不需要的BOM(þÿ),在“testing”和“PDF”之间出现的“ - ”是空间。
我确定这与UTF-16与UTF-8有关,我可能需要在PDFBox中设置编码。有一些关于这类事情的帖子,但其中很多都很老,看起来不可靠(而且我承认自己并不熟悉PDFBox,只是略微使用UTF-x)。谢谢。
package com.canchek.report;
import java.io.IOException;
import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class PdfBoxTest {
/* PDFBox coordinate system starts in the bottom LEFT
*/
public static void main(String[] args) throws IOException, COSVisitorException {
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
PDFont font = PDType1Font.HELVETICA_BOLD;
contentStream.setFont(font, 20);
contentStream.beginText();
contentStream.moveTextPositionByAmount(20, 700);
contentStream.drawString("testing\u2013PDF");
contentStream.endText();
contentStream.close();
document.save("C:/temp/test.pdf");
document.close();
}
}