使用jsPDF库并遵循此答案中的示例代码,我正在使用 HTML 和 javascript 进行构建以生成 PDF 文件。
PDF 文件的内容是此测试页1的 HTML 代码,您可以下载以查看其内容。
在浏览器中打开文件并选择下载链接;PDF 文件下载到“下载”文件夹2,但结果包含一些编码字符:
这是 HTML 文件的片段:
<div class="TituloPagina">
CONTRATO INDIVIDUAL DE TRABAJO A TÉRMINO FIJO INFERIOR A UN AÑO CELEBRADO ENTRE
COMPAÑÍA (A). Y FUTURO EMPLEADO (B) –SALARIO ORDINARIO.
</div>
该字符–
显示在 PDF 中,如下所示:þÿ
我试过了:
- 将属性放入
UTF-8
HTML 文件中。 - 按照答案中的说明保存 HTML 文件,但在这种情况下,我认为问题不在于示例 HTML 文件,而在于转换为 PDF 的结果。
meta
像这样更改标签<meta charset="iso-8859-1" />
:ñ
这会导致 HTML 文件丢失重音等字符的编码。
但是生成的PDF文件没有区别。
如何使用 jsPDF 从生成的 PDF 文件中删除编码字符?
1我创建了这个测试文件,因为实际开发中包含敏感信息。
2下载路径因每个用户在其首选浏览器中的配置而异。
一切都表明这是“fromHTML”插件中的一个错误。一种解决方案可能是避免使用代码大于 255 的字符(仅限于Windows-1252中的字符)。
另一种是使用你自己的jsPDF,改变这一行,它说:
经过
第三种解决方案:在生成 8 位向量时映射字符。
保持调用的变化
pdfEscape
,在主模块中,在这一行之后,把当 Unicode 值与字符集中的值不同时,对表中的字符执行相同操作(它们是行“8_”和“9_”中的字符)。
(免责声明:这看起来是正确的做法,但我还没有测试过。)