通过自动化从Word转换时,PDF格式不一致

San*_*eev 6 c# pdf coldfusion ms-word windows-server-2008-r2

我需要你的专业知识来解决我一周来面临的问题.这已经变成了"腰背部的皇家痛苦"类别,时间快到了.

问题

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

看图像 -

应该是什么样子......

好照片

看起来像什么......

肮脏的画面

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

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

我的申请流程详情 -

  1. 我创建了一个DOC(根据我的设计需求)并将其保存为HTML.
  2. 我的CF应用程序将使用此HTML来基于某些占位符操作内容,最终输出再次保存为HTML.
  3. xx.html文件重命名为xx.doc并传递给我的基于C#的转换器,该转换器通过Word Automation进行doc到pdf转换.
  4. 我很高兴地看到我的格式正确的PDF输出,但感到遗憾的是文本有点乱.

我用多种字体试过这个,我观察到它只发生在某些字体上(在我的例子中是Palatino - Linotype).我想知道,从手动到自动化有什么区别?是否有针对此或其他黑客的设置(如布尔值)?

我的系统配置 -

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

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

Sym*_*ric 9

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

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

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

笔记:

  • 在找到之前我还安装了Adobe PDF Writer.它可能会影响它.
  • 我的系统是在Mac mini上的Fusion 5.0.3下运行的Windows 8.1和Office 2013.


Rom*_*hke 0

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

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

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