我目前有一个程序,通过用户输入和FileBrowserDialog将包含word文档的文件夹合并为一个组合文件。选择文件后,即可合并'按钮应用下面显示的代码,该代码来源包含文档的文件夹,输出位置和创建的文件的名称。
string fileDate = DateTime.Now.ToString("dd-MM-yy");
string fileTime = DateTime.Now.ToString("HH.mm.ss");
string outcomeFolder = outputFolder;
string outputFileType = ".docx";
string outputFile = "Combined Folder " + fileDate + " @ " + fileTime + outputFileType;
string outputFileName = Path.Combine(outcomeFolder, outputFile);
// Combines the file name, output path selected and the yes / no for pagebreaks.
MsWord.Merge(sourceFiles, outputFileName, pageBreaker);
// Message displaying how many files are combined.
MessageBox.Show("A total of " + sourceFiles.Length.ToString() + " documents have been merged", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);}
MsWord引用调用一个单独的.CS文件,该文件组合了文件夹组件,输出名称和布尔值以启用分页符。一旦成功组合文件夹的内容,MsWord还会自动将单词.doc保存到用户指定的位置。 MsWord.Merge(sourceFiles, outputFileName, pageBreaker);
我想要解决的问题是,当我启用此复选框时:
if (convert2PDFBox.Checked)
Microsoft.Office.Interop.Word.Application officeApp = new Microsoft.Office.Interop.Word.Application();
officeApp.Documents.Open(outputFileName);
outputFileType = ".pdf";
officeApp.ActiveDocument.SaveAs(outputFileName + outputFileType, WdSaveFormat.wdFormatPDF);
officeApp.Quit();
我希望程序单独创建组合文件夹的PDF,而不是它当前所做的2个单独的.doc和.PDF文件。由于MsWord.save函数是单独调用的,并且对我的程序的整体功能至关重要,我想知道一旦PDF转换发生,是否有可能删除最初组合的文件?的 e.g。 " combinedDocument"。删除 - 基本上允许复制,但不向用户显示初始.doc - 仅限.PDF
虽然问题很小,但我很乐意解决这个问题,并欢迎以这种方式提出任何建议或建议。如果需要,我还可以提供任何其他信息,谢谢。
tl; dr - 合并程序会创建一个合并的Word .doc,我想在启用复选框时仅将其更改为PDF,而不是创建.doc和PDF。
答案 0 :(得分:0)
我终于解决了我的问题 - 我决定做的是操纵我现有的 MsWord.cs 并为我的主表单创建一个单独的 PDF.cs 调用:
我没有在合并时保存Word .doc,而是使用:wordApplication.ActiveDocument.SaveAs(outputFile, Word.WdSaveFormat.wdFormatPDF);
将合并后的内容保存为.pdf
然而,由于合并后的文件实际上从未以.Doc / .Docx格式保存,因此我提示'将文件另存为,因此出现了Microsoft Word错误
然后我改变了通话的结束语,
// Close Word application
wordApplication.Quit(
false, // save changes
通过将'保存更改'设置为 False,,它删除了允许Word文档的'另存为'提示。在不需要保存的情况下被解雇,因此只留下初始PDF。然后,我将两个单独的文件类型调用应用于所显示的每个复选框,这允许用户启用合并文件的结果格式。
感谢您就此问题提出建议。