尝试以编程方式打印 Word 文档目录时遇到问题。在此示例中,我尝试仅打印带有“3_”前缀的文件。问题是文件不会打印,除非有两个带有 3_ 前缀的文件。我一直在四处寻找这个问题。我打开文件的方式有问题吗?它仅在目录中有两个文件时才有效,在这种情况下,它只会打印出两个文件中的一个。
编辑:我确实尝试了一个消息框,路径是正确的。文件名是正确的。另外,如果我正在查看打印机文件夹中的打印机,则文档会闪烁一秒钟然后消失(我已暂停打印,以便可以看到输出)。如果 word 给我一个错误,为什么它不显示?如果目录中有两个带有 3_ 前缀的文件,为什么这会起作用?
编辑:我认为这是 printout() 方法的问题。当我将应用程序设置为可见并运行它时,文档可以正常打开,但没有打印任何内容。我可以手动打开文档并打印(效果很好)。
编辑:谢谢大家的回答。printout() 方法中的背景参数是问题所在。该程序将在打印完全假脱机之前退出(这就是为什么我会在打印队列中看到文档闪烁并消失的原因。关闭后台打印需要文档保持打开和打印,这是关键。谢谢
string[] filesToCheck = Directory.GetFiles(clientDirectoryPath);
Object filename = null;
for (int i = 0; i < filesToCheck.Count();i++ )
{
if(filesToCheck[i].Contains("3_"))
{
filename = filesToCheck[i];
wrdDoc = wrdApp.Documents.Open(ref filename, ref oMissing, ref oTrue, ref oFalse,
ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing);
wrdDoc.PageSetup.FirstPageTray = letterHeadTray;
wrdDoc.PageSetup.OtherPagesTray = defaultTray;
wrdDoc.PrintOut(ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing);
wrdDoc.Close(ref oFalse, ref oMissing, ref oMissing);
wrdDoc = null;
}
}