itext pdf文件打印中文无法识别问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了itext pdf文件打印中文无法识别问题相关的知识,希望对你有一定的参考价值。
参考技术A 经常用ITEXT生成一些PDF文件,最近发现生成的PDF文件如果不在WINDOWS系统打印会出现中文字体打印不出来,例如手机端(包括一些PDF查看工具),查了一些资料是字体库的问题。ITEXT程序中创建字体有三种方法:
经常用的是第一种方法。第二种和第三种方法都是引用另外的TTF字体库。这里用iTextAsian字体库出现问题,参考 http://blog.csdn.net/birdfromforest/article/details/49903751 文章中的方法,引用windows系统中的STSONG.TTF字体库(位置:C:\Windows\Fonts\),把STSONG.TTF拷到自己的路径中也可以,则换为:
生成PDF后直接在手机上查看或打印,或在打印机上直接通过U盘打印没有异常。
使用 iText 库读取 pdf 文件 [关闭]
【中文标题】使用 iText 库读取 pdf 文件 [关闭]【英文标题】:Reading a pdf file using iText library [closed] 【发布时间】:2011-05-02 04:43:44 【问题描述】:我是安卓新手。我计划开发一个PDF查看器。我听说有一个名为 iText 的库可用于开发 PDF 查看器。请告诉我如何在 Android 中使用 iText 库以及如何使用该库开发应用程序。
【问题讨论】:
我们可以回答有关库如何工作的具体问题,但我们无法告诉您如何编写整个应用程序。如果您的需求发生变化,请随时提出另一个(更具体的)问题。 【参考方案1】:试试这个
public class ReadAndUsePdf
private static String INPUTFILE = "c:/temp/FirstPdf.pdf";
private static String OUTPUTFILE = "c:/temp/ReadPdf.pdf";
public static void main(String[] args) throws DocumentException,
IOException
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(OUTPUTFILE));
document.open();
PdfReader reader = new PdfReader(INPUTFILE);
int n = reader.getNumberOfPages();
PdfImportedPage page;
// Go through all pages
for (int i = 1; i <= n; i++)
// Only page number 2 will be included
if (i == 2)
page = writer.getImportedPage(reader, i);
Image instance = Image.getInstance(page);
// here you can show image on your phone
document.close();
【讨论】:
如何显示 com.itextpdf.text.Image 对象?以上是关于itext pdf文件打印中文无法识别问题的主要内容,如果未能解决你的问题,请参考以下文章
GraphicsMagick 无法识别 PDF 的背景透明度