我即将开始一个Java项目只是为了练习.我读过关于Maven的内容,但我实际上并不了解它何时被使用.
你能给我一些实用的建议吗?Maven有很多帮助吗?Maven对我的项目实际做了什么?
尝试将阿拉伯语单词保存在可编辑的PDF中。它对英语语言来说都可以正常工作,但是当我使用阿拉伯语单词时,出现了这个异常:
java.lang.IllegalArgumentException:U + 0627在此字体Helvetica编码中不可用:WinAnsiEncoding
这是我生成PDF的方式:
public static void main(String[] args) throws IOException
{
String formTemplate = "myFormPdf.pdf";
try (PDDocument pdfDocument = PDDocument.load(new File(formTemplate)))
{
PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();
if (acroForm != null)
{
PDTextField field = (PDTextField) acroForm.getField( "sampleField" );
field.setValue("????");
}
pdfDocument.save("updatedPdf.pdf");
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用pdfbox在pdf文档中编写一些阿拉伯字符.结果我得到了一些奇怪的角色.您可以在下面找到我用于测试的代码段.请注意,相同的代码用于打印拉丁字符没有任何问题.
public static void main(String[] args) throws Exception {
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDPage.PAGE_SIZE_A4);
document.addPage(page);
PDPageContentStream stream = new PDPageContentStream(document, page,true, true);
//Use of a unicode font
PDFont font = PDTrueTypeFont.loadTTF(document,"C:/arialuni.ttf");
font.setFontEncoding(new WinAnsiEncoding());
stream.setFont(font, 12);
stream.beginText();
stream.moveTextPositionByAmount(40, 600);
stream.drawString("?? ??? ????? ????????? ?? ");
stream.endText();
stream.close();
document.save("c:\\resultpdf.pdf");
document.close();
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.我尝试从微软网站下载的Unicode字体,但我仍然有相同的结果.
通过使用方法'drawUnicodeString'和方法'loadTTF'我得到了PDFBOX-922 我能够写阿拉伯字符但它们是断开连接并从左到右排序.以下是两种方法'drawUnicodeString'和'loadTTF'
public void drawUnicodeString(String text) throws IOException {
COSString string = new COSString();
for (int i = 0; i < text.length(); …Run Code Online (Sandbox Code Playgroud)