xpdf字体缺失,添加外界新字体步骤

背景:xpdf自带字体不完整,部分字体显示Syntax Error: Couldn’t find a font for 'xxxx’的问题

  1. 百度下载,并将缺失字体文件放到xpdf的fonts文件下,并改名为控制器报错缺失字体的名字。
    在这里插入图片描述
    大部分免费字体可以从这里下载:字体下载地址
  2. (windows)在xpdf文件下找到xpdfrc文件,并在其中添加缺失字体配置
    在这里插入图片描述
    在这里插入图片描述
fontFile STSong-Light-UniGB-UCS2-H ./fonts/STSong-Light-UniGB-UCS2-H.ttf
  1. (Linux)在xpdf文件下找到xpdfrc文件,并在其中添加缺失字体配置
#fontFile Times-Roman		/usr/local/share/ghostscript/fonts/n021003l.pfb
#fontFile Times-Italic		/usr/local/share/ghostscript/fonts/n021023l.pfb
#fontFile Times-Bold		/usr/local/share/ghostscript/fonts/n021004l.pfb
#fontFile Times-BoldItalic	/usr/local/share/ghostscript/fonts/n021024l.pfb
#fontFile Helvetica		/usr/local/share/ghostscript/fonts/n019003l.pfb
#fontFile Helvetica-Oblique	/usr/local/share/ghostscript/fonts/n019023l.pfb
#fontFile Helvetica-Bold		/usr/local/share/ghostscript/fonts/n019004l.pfb
#fontFile Helvetica-BoldOblique	/usr/local/share/ghostscript/fonts/n019024l.pfb
#fontFile Courier		/usr/local/share/ghostscript/fonts/n022003l.pfb
#fontFile Courier-Oblique	/usr/local/share/ghostscript/fonts/n022023l.pfb
#fontFile Courier-Bold		/usr/local/share/ghostscript/fonts/n022004l.pfb
#fontFile Courier-BoldOblique	/usr/local/share/ghostscript/fonts/n022024l.pfb
fontFile Symbol			./fonts/s050000l.pfb
fontFile ZapfDingbats		./fonts/d050000l.pfb
#你缺失的字体的文件路径
fontDir ./fonts/generalFonts


#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode Adobe-GB1 ./xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN ./xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN ./xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK ./xpdf-chinese-simplified/GBK.unicodeMap
cMapDir Adobe-GB1 ./xpdf-chinese-simplified/CMap
toUnicodeDir ./xpdf-chinese-simplified/CMap
#displayCIDFontTT Adobe-GB1 ./xpdf-chinese-simplified/CMap/gkai00mp.ttf 
#fontFileCC Adobe-GB1 /usr/..../gkai00mp.ttf
#----- end Chinese Simplified support package

#----- begin Chinese Traditional support package (2011-sep-02)
cidToUnicode	Adobe-CNS1	./xpdf-chinese-traditional/Adobe-CNS1.cidToUnicode
unicodeMap	Big5		./xpdf-chinese-traditional/Big5.unicodeMap
unicodeMap	Big5ascii	./xpdf-chinese-traditional/Big5ascii.unicodeMap
cMapDir		Adobe-CNS1	./xpdf-chinese-traditional/CMap
toUnicodeDir			./xpdf-chinese-traditional/CMap
#fontFileCC	Adobe-CNS1	/usr/..../NotoSansCJKtc-Regular.otf"
#----- end Chinese Traditional support package

#----- begin Arabic support package (2011-aug-15)
unicodeMap	ISO-8859-6	./xpdf-arabic/ISO-8859-6.unicodeMap
#----- end Arabic support package

#----- begin Greek support package (2011-aug-15)
nameToUnicode			./xpdf-greek/Greek.nameToUnicode
unicodeMap	ISO-8859-7	./xpdf-greek/ISO-8859-7.unicodeMap
#----- end Greek support package

#----- begin Japanese support package (2011-sep-02)
cidToUnicode	Adobe-Japan1	./xpdf-japanese/Adobe-Japan1.cidToUnicode
unicodeMap	ISO-2022-JP	./xpdf-japanese/ISO-2022-JP.unicodeMap
unicodeMap	EUC-JP		./xpdf-japanese/EUC-JP.unicodeMap
unicodeMap	Shift-JIS	./xpdf-japanese/Shift-JIS.unicodeMap
cMapDir		Adobe-Japan1	./xpdf-japanese/CMap
toUnicodeDir			./xpdf-japanese/CMap
#fontFileCC	Adobe-Japan1	/usr/..../NotoSansCJKjp-Regular.otf
#----- end Japanese support package

由于添加字体前,需要知道xpdf所缺失字体名称,因此不能提前预配,转成一定程度上的麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
要使用xpdf工具将PDF文本提取到QTableView中,你需要以下步骤: 1. 安装xpdf工具:你可以从xpdf官方网站下载适用于你的操作系统的xpdf工具包。按照官方指南进行安装。 2. 使用xpdf工具将PDF文件转换为文本文件:使用xpdf工具包中的pdftotext命令将PDF文件转换为纯文本文件。在命令行中运行以下命令: ``` pdftotext input.pdf output.txt ``` 这将把input.pdf中的文本提取出来,并保存到output.txt文件中。 3. 在Qt中创建一个QTableView控件:使用Qt框架创建一个QTableView控件,用于显示表格数据。 4. 读取文本文件并将数据加载到QTableView中:使用Qt的文件读取功能读取output.txt文件中的文本数据,并将其加载到QTableView中。你可以根据需要对文本进行分割和处理,然后使用QTableView的数据模型(如QStandardItemModel)将数据添加到表格中。 以下是一个简单的示例代码,演示了如何实现上述步骤: ```cpp // 导入必要的头文件 #include <QApplication> #include <QTableView> #include <QStandardItemModel> #include <QStringList> #include <QFile> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 创建一个QTableView控件和一个数据模型 QTableView tableView; QStandardItemModel model; tableView.setModel(&model); // 打开并读取文本文件 QFile file("output.txt"); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine(); QStringList fields = line.split("\t"); // 根据实际的分隔符进行分割 QList<QStandardItem*> items; foreach (const QString &field, fields) { items.append(new QStandardItem(field)); } model.appendRow(items); } file.close(); } // 显示QTableView tableView.show(); return a.exec(); } ``` 请根据你的实际情况进行修改和调整,确保路径、分隔符和数据处理逻辑与你的输出文件匹配。这只是一个简单的示例,你可以根据需要进行更复杂的数据处理和表格显示操作。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值