我希望在Word文档中找到并替换一些变量,以形成一个新的文档(旧的文档仍然完好无损)。然后将新Word文档作为PDF发送给客户。
我已经完成了查找和替换,并创建了一个新的XML newWordText,但是我不得不将它转换回Word文档/ PDF或字节数组,我可以返回客户端或以电子邮件的形式发送PDF。
到目前为止,我在堆栈溢出/internet上看到的例子都是有帮助的。
但我不能像我预期的那样去工作
更新:我尝试将转换为字节并获取base64String。我使用在线base64转换成pdf格式,但我得到了
有些地方出了问题,无法打开文件
public async Task<string> CreatePolicyDocument(string PolicyNumber)
{
// create document
var files = @"C:\Users\pathtodocument\Testdocument.docx";
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(files, true))
{
// Insert other code here.
string docText;
using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
docText = sr.ReadToEnd();
}
Regex regexText = new Regex("XCONCLUSION_DATEX");
var newWordText = regexText.Replace(docText, "Hi Everyone!");
using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.Write(newWordText);
Encoding encoding = Encoding.UTF8;
byte[] docAsBytes = encoding.GetBytes(newWordText);
File.WriteAllBytes("hello.pdf", docAsBytes);
var file = Convert.ToBase64String(docAsBytes);
}
}
// send message
//
return "";
}发布于 2022-02-23 02:39:24
Write应该能够在windows 10/11上将docx转换为PDF (我已经多次使用它),但是在这里,我必须使用XPS来演示如何进行类似的操作。

但是可以打印到我的远程GhostScript打印机(如果它被打开),所以使用write的关键是指定打印机&驱动程序,然后输出文件名,所以在您的情况下是:-
write /pt input.docx "Microsoft Print to PDF" "Microsoft Print to PDF" output.pdf
许多用户抱怨,但它不是无头或沉默,我的答案是尝试运行许多打印机静默,您将有问题,因为他们非常需要/使用WINDOWS工作站GDI。另一种抱怨是写不会处理我的单词DocX --它太专业了,在这种情况下,除了Word之外,其他任何东西都不可能删掉它。保持模板的简单和普遍接受。
至于您的其他问题,docx文件只是压缩,所以使用Windows10/11 Tar -a blah blah或Windows7/8/9,然后在FnR更改后使用powershell重新压缩文件。
https://stackoverflow.com/questions/71223715
复制相似问题