根据自定义DPI,打印到PDF在Excel中是不同的

时间:2013-03-05 14:49:27

标签: excel pdf printing dpi

我今天早上打电话来处理我之前在Excel中构建的工具。该工具生成报告,然后将其打印为pdf。他们打电话给我的问题是,对于一个用户,PDF中的行间距是关闭的。我花了一段时间才弄清问题的原因。这是DPI。看到该字体有问题的用户将Windows的字体增加到150%,并且由于某种原因导致excel以不同方式导出为pdf。

我知道问题是什么,但要求用户更改DPI(强制用户注销),重新登录,打开excel并运行我的宏,最后更改回DPI不是一个合理的解决方案。我希望有一位大师可以帮助我找到解决方案。我不介意在程序运行时添加VBA代码来临时更改DPI,但我不知道该怎么做或是否可能。

由于

为了进一步澄清它的窗口7和我所说的方面是,如果你去更改分辨率,有一个链接询问你是否要“让文字和其他项目更大或更小”。滑块从默认值100%更改为150%。

1 个答案:

答案 0 :(得分:1)

我想不出一个克服这个问题的简单方法。您可以尝试的是创建一个OLE应用程序(例如,在C#,VB.NET或C ++中),它在内部使用Excel只是打开文件并将其导出为PDF。然后,您可以使用命令runas在批处理文件中在系统上创建新用户并午餐。 再次返回Excel,您可以使用Shell命令在批处理文件中休息 工作流程将是:

1-使用VBA和Shell功能,从当前文件作为参数调用Excel中的批处理文件 2-批处理文件使用runas调用自定义应用程序MyAppExportToPDF,并将当前Excel文件作为参数传递。
3- MyAppExportToPDF使用OLE打开Excel的新实例,加载文件并将其导出为PDF。

由于MyAppExportToPDF将在其他用户中运行,因此新的Excel实例也应该在该用户下运行。此用户下的DPI设置应该是您需要的设置。

免责声明:这只是一个未经考验的想法。