我有一个应用程序,其记录可以包含许多与其关联的附件,这些附件可能是JPG,TIF,PDF或HTM文件的集合(理论上这个列表是任意的,这些是最典型的类型)
我需要做的其中一项操作是允许将这些质量打印到特定的打印机。
对于大多数文件类型,我可以模拟shell并执行与拖动文件并将其放到资源管理器中的打印机上相同的操作,使用“PrintTo”动词,并使用ShellExecute(通过{{1} });然而,我一直在摸不着头脑,想知道为什么这不适用于HTM文件 - 相反,它总是提示为每个文件选择一台打印机,即使注册表设置似乎就在那里。
当我回到第一原则时,当我发现它的行为方式相同时检查shell是否“正常”(因此,假设您将任何旧的HTML文件拖放到打印机上)资源管理器,它始终提示打印,默认打印机是您的默认打印机,即使这不是您将文件放到上的打印机)
现在,appears this behaviour was introduced in IE7(无论是有意还是无意,我都不确定);但有没有办法让这个按预期工作?
编辑:这是针对内部应用程序的,因此可以修复注册表 if 。
答案 0 :(得分:1)
您可以使用webbrowser控件并调用.Print()方法。我只是测试了它,它直接进入我的默认打印机而没有提示我。我知道这可能不太理想,但我认为应该完成工作。