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

我今天早上被召集到一个我曾经在Excel中build立的工具。 该工具生成一个报告,然后打印到PDF。 他们打电话给我的问题是,对于一个用户,PDF中的行间距已closures。 我花了一段时间才弄清楚问题的原因。 这是新闻部。 无法看到字体的用户已经将Windows的字体增加到了150%,并且出于某种原因导致excel导出为pdf格式不同。

我知道问题是什么,但要求用户更改DPI(强制用户注销),重新login,打开excel并运行我的macros,最后改回DPI不是一个合理的解决scheme。 我希望有一位能够帮助我find解决办法的专家。 我不介意在程序运行时添加VBA代码来临时更改DPI,但我不确定如何做到这一点,或者如果可能的话。

谢谢

为了更清楚地说明其Windows 7和我所说的方面是如果你去改变分辨率有一个链接,询问是否要“使文本和其他项目更大或更小”。 滑块从默认的100%更改为150%。

我想不出一个解决这个问题的简单方法。 你可以尝试的是创build一个在内部使用Excel的OLE应用程序(例如C#,VB.NET或C ++)来打开文件并将其导出为PDF。 然后,您可以在系统上创build一个新用户,并使用命令runas从batch file中吃饭。 再次回到Excel,您可以使用Shell命令午餐batch file。
工作stream程将是:

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

由于MyAppExportToPDF将以不同的用户运行,所以新的Excel实例也应该在该用户下运行。 这个用户下的DPI设置应该是你需要的。

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