8

我需要您的专业知识来解决我一周以来一直面临的问题。这已经变成了“下背部的皇家疼痛”类别,时间很快就过去了。

问题

我开发了一个从 ColdFusion 调用的 C# 脚本,以帮助我将 Word 文档转换为 PDF。该脚本正在正确进行转换,但段落中的(对齐的)文本没有正确间隔。我在某个字符旁边有一个不可选择的空间。

看图——

应该是什么样子...

好图

它看起来像什么...

肮脏的画面

添加红色标记以显示创建的空间。

现在,如果我手动打开文件并保存它,我不会遇到同样的问题。我错过了什么或做错了什么,导致了这个错误?

我的申请流程的详细信息 -

  1. 我创建了一个 DOC(基于我的设计需要)并将其保存为 HTML。
  2. 我的 CF 应用程序将使用这个 HTML 来根据一些占位符操作内容,最终输出再次保存为 HTML。
  3. xx.html 文件重命名为 xx.doc 并传递给我的基于 C# 的转换器,该转换器通过 Word 自动化将 doc 转换为 pdf。
  4. 看到我格式良好的 PDF 输出,我很高兴地思考,但很难过文本有点乱。

我已经尝试过使用多种字体,我观察到它只发生在某些字体上(在我的例子中是 Palatino - Linotype)。我想知道,手动和自动化有什么区别?是否有为此或其他一些黑客行为完成的设置(如布尔值)?

我的系统配置——

Windows 2008 R2 64b + .NET 4 + Office 2010

注意:我知道办公自动化很糟糕。所以在这个日期和时间,这是我完成工作的唯一选择。

4

2 回答 2

11

我为此找到了解决方法。它似乎取决于所选的打印机!

  • 首先转到打印对话框(文件/打印)并选择“Microsoft XPS Document Writer”而不是普通打印机。你不需要打印任何东西,
  • 现在导出 PDF(文件/导出/创建 PDF)

选择其他打印机驱动程序也可能有效。我在这个线程找到了这个解决方案:http: //www.howtofixcomputers.com/forums/microsoft-office/bad-kerning-pdf-using-save-pdf-xps-add-244886.html

笔记:

  • 在找到它之前,我还安装了 Adob​​e PDF Writer。有可能影响了它。
  • 我的系统是在 Mac mini 上的 Fusion 5.0.3 下运行的 Windows 8.1 和 Office 2013。
于 2013-12-13T17:11:05.710 回答
0

我想问题可能出在使用的字体上。请试试:

  • 更改字体
  • 确保文本的语言(LanguageID 属性)正确

或者它可能被插入特殊字符,例如,错误的解释插入“无宽度可选中断”。尝试选择文本,在 word 中剪切和粘贴并查看不可打印的字符 - 它应该是可见的。

于 2013-06-05T08:22:14.827 回答