Java - PDFBox 1.8.9 unicode 文本文件转 pdf
Java - PDFBox 1.8.9 unicode textfile to pdf
我在 SO 上忽略了与此问题相关的所有问题,但无法找到并回答。
我有一个文本文件,其中包含“ā”、“š”、“ī”等 unicode 字符。
问题是,当我将文本文件写入 PDF 时,pdf 文件无法正确显示。
如何设置我的代码,以便我可以在我的 PDF 中写入这些字符?
也许更好的问题是:这可能吗?由于我一直在寻找这个几个小时,但找不到解决方案。
由于此应用程序将用于商业用途,我不能使用 iText!
我的代码:
TextToPDF pdf = new TextToPDF();
String fileName = "test.txt";
File pdfFile = new File("test.pdf");
BufferedReader reader = new BufferedReader(new FileReader(fileName));
PDSimpleFont courier = PDType1Font.COURIER;
PDSimpleFont testFont = PDTrueTypeFont.loadTTF( document, new File("times.ttf" ));
pdf.setFont(testFont);
pdf.setFontSize(8);
pdf.createPDFFromText(document, reader);
document.save(pdfFile);
document.close();
如果有人这样做过,请分享你是如何做到的。我相信它应该与 font.setFontEncoding();
有关,但由于 PDFBox 文档缺少很多信息,我还没有弄清楚,我应该做什么或如何做。
顺便说一下,这里是我读过的 SO 问题列表,所以请不要将我重定向回他们...
1) Java PDFBOX text encoding
2) Using Java PDFBox library to write Russian PDF
3) Using PDFBox to write UTF-8 encoded strings to a PDF
我阅读了更多主题,但这些主题仍在我的选项卡中打开。
已编辑:刚找到这个 ->
好像不行,需要更新到2.0.0版本试试看
已编辑#2:在 PDFBox 2.0.0 的新版本中(至少现在)已删除 class TextToPDF()
让我传入文本文件。所以现在这意味着,要么我手动阅读文本然后将其写入 PDF,要么需要找到其他一些解决方案。
您的问题在这里:
BufferedReader reader = new BufferedReader(new FileReader(fileName));
如此处所述:http://docs.oracle.com/javase/7/docs/api/java/io/FileReader.html
FileReader 将以系统默认编码读取文件。
改成这样:
BufferedReader in = new BufferedReader(
new InputStreamReader(
new FileInputStream(fileDir), "UTF8"));
如果您的文件是 UTF-8 格式,这将以 UTF-8 格式读取它。您描述的特殊字符存在于所有字符编码中,例如 iso latin 1 等
当您知道输入的编码时,请确保以这种编码读取它。然后PDFBox也可以用他想要的编码来写它们。
you can create a pdf by simply creating a file with .pdf extension
You are going to create pdf file like this way "**File pdfFile = new File("test.pdf")**" but itsn't correct way . please go through below code how to crate pdf file .
public static void main(String arg[]){
this.create("test.pdf");`enter code here`enter code here`
}
public void create(String file) throws IOException {*enter code here*
PDDocument document=null;
try {
document=new PDDocument();
PDPage blankPage=new PDPage();
document.addPage(blankPage);
document.save(file);
}
finally {
if (document != null) {
document.close();
}
}
}
and also go through below link **http://www.javased.com/api=org.apache.pdfbox.pdmodel.PDDocument**
刚找到这个 ->
好像不行,需要更新到2.0.0版本试试看
已编辑 #2:在新版本的 PDFBox 2.0.0 中(至少现在)
已删除 class TextToPDF()(在评论中,据说现在可用)
这让我传入了文本文件。所以现在这意味着,要么我手动阅读文本然后将其写入 PDF,要么需要找到其他一些解决方案
我在 SO 上忽略了与此问题相关的所有问题,但无法找到并回答。
我有一个文本文件,其中包含“ā”、“š”、“ī”等 unicode 字符。 问题是,当我将文本文件写入 PDF 时,pdf 文件无法正确显示。
如何设置我的代码,以便我可以在我的 PDF 中写入这些字符? 也许更好的问题是:这可能吗?由于我一直在寻找这个几个小时,但找不到解决方案。
由于此应用程序将用于商业用途,我不能使用 iText!
我的代码:
TextToPDF pdf = new TextToPDF();
String fileName = "test.txt";
File pdfFile = new File("test.pdf");
BufferedReader reader = new BufferedReader(new FileReader(fileName));
PDSimpleFont courier = PDType1Font.COURIER;
PDSimpleFont testFont = PDTrueTypeFont.loadTTF( document, new File("times.ttf" ));
pdf.setFont(testFont);
pdf.setFontSize(8);
pdf.createPDFFromText(document, reader);
document.save(pdfFile);
document.close();
如果有人这样做过,请分享你是如何做到的。我相信它应该与 font.setFontEncoding();
有关,但由于 PDFBox 文档缺少很多信息,我还没有弄清楚,我应该做什么或如何做。
顺便说一下,这里是我读过的 SO 问题列表,所以请不要将我重定向回他们...
1) Java PDFBOX text encoding
2) Using Java PDFBox library to write Russian PDF
3) Using PDFBox to write UTF-8 encoded strings to a PDF
我阅读了更多主题,但这些主题仍在我的选项卡中打开。
已编辑:刚找到这个 ->
好像不行,需要更新到2.0.0版本试试看
已编辑#2:在 PDFBox 2.0.0 的新版本中(至少现在)已删除 class TextToPDF()
让我传入文本文件。所以现在这意味着,要么我手动阅读文本然后将其写入 PDF,要么需要找到其他一些解决方案。
您的问题在这里:
BufferedReader reader = new BufferedReader(new FileReader(fileName));
如此处所述:http://docs.oracle.com/javase/7/docs/api/java/io/FileReader.html FileReader 将以系统默认编码读取文件。 改成这样:
BufferedReader in = new BufferedReader(
new InputStreamReader(
new FileInputStream(fileDir), "UTF8"));
如果您的文件是 UTF-8 格式,这将以 UTF-8 格式读取它。您描述的特殊字符存在于所有字符编码中,例如 iso latin 1 等
当您知道输入的编码时,请确保以这种编码读取它。然后PDFBox也可以用他想要的编码来写它们。
you can create a pdf by simply creating a file with .pdf extension
You are going to create pdf file like this way "**File pdfFile = new File("test.pdf")**" but itsn't correct way . please go through below code how to crate pdf file .
public static void main(String arg[]){
this.create("test.pdf");`enter code here`enter code here`
}
public void create(String file) throws IOException {*enter code here*
PDDocument document=null;
try {
document=new PDDocument();
PDPage blankPage=new PDPage();
document.addPage(blankPage);
document.save(file);
}
finally {
if (document != null) {
document.close();
}
}
}
and also go through below link **http://www.javased.com/api=org.apache.pdfbox.pdmodel.PDDocument**
刚找到这个 ->
好像不行,需要更新到2.0.0版本试试看
已编辑 #2:在新版本的 PDFBox 2.0.0 中(至少现在)
已删除 class TextToPDF()(在评论中,据说现在可用)
这让我传入了文本文件。所以现在这意味着,要么我手动阅读文本然后将其写入 PDF,要么需要找到其他一些解决方案