我現在正在做一個網頁功能,要把一個文件裡面的文字置換,然後匯出,格式可以是Word或是pdf檔皆可,請問用哪一種方式比較好呢?謝謝。
我提供範例程式,給你選
using System;
using System.IO;
using Microsoft.Office.Interop.Word;
namespace ReplaceTextInWord
{
class Program
{
static void Main(string[] args)
{
string sourceFile = @"C:\Example\Source.docx";
string targetFile = @"C:\Example\Target";
string fileFormat = "pdf"; // 更改 "pdf" 為 "docx" 以輸出 Word 格式
// 創建一個 Word 應用程式物件
Application wordApp = new Application();
// 開啟源文件
Document doc = wordApp.Documents.Open(sourceFile);
// 替換文字
doc.Content.Find.Execute(FindText: "old text", ReplaceWith: "new text", Replace: WdReplace.wdReplaceAll);
// 保存目標文件
if (fileFormat == "pdf")
{
targetFile += ".pdf";
doc.SaveAs2(targetFile, WdSaveFormat.wdFormatPDF);
}
else
{
targetFile += ".docx";
doc.SaveAs2(targetFile, WdSaveFormat.wdFormatDocument);
}
// 關閉文件並退出 Word 應用程式
doc.Close();
wordApp.Quit();
}
}
}
using System;
using System.IO;
using Novacode;
namespace ReplaceTextAndExport
{
class Program
{
static void Main(string[] args)
{
string sourceFile = @"C:\Example\Source.docx";
string targetFile = @"C:\Example\Target";
string fileFormat = "pdf"; // 更改 "pdf" 為 "docx" 以輸出 Word 格式
// 開啟源文件
using (DocX document = DocX.Load(sourceFile))
{
// 替換文字
document.ReplaceText("old text", "new text");
// 保存目標文件
if (fileFormat == "pdf")
{
targetFile += ".pdf";
document.SaveAs(targetFile, Format.PDF);
}
else
{
targetFile += ".docx";
document.SaveAs(targetFile);
}
}
}
}
}
3.透過 Spire.Doc for .NET 的範例:
using System;
using Spire.Doc;
namespace ReplaceTextAndExport
{
class Program
{
static void Main(string[] args)
{
string sourceFile = @"C:\Example\Source.docx";
string targetFile = @"C:\Example\Target";
string fileFormat = "pdf"; // 更改 "pdf" 為 "docx" 以輸出 Word 格式
// 開啟源文件
using (Document document = new Document())
{
document.LoadFromFile(sourceFile);
// 替換文字
document.Replace("old text", "new text", false, true);
// 保存目標文件
if (fileFormat == "pdf")
{
targetFile += ".pdf";
document.SaveToFile(targetFile, FileFormat.PDF);
}
else
{
targetFile += ".docx";
document.SaveToFile(targetFile, FileFormat.Docx);
}
}
}
}
}
using System;
using Aspose.Words;
namespace ReplaceTextAndExport
{
class Program
{
static void Main(string[] args)
{
string sourceFile = @"C:\Example\Source.docx";
string targetFile = @"C:\Example\Target";
string fileFormat = "pdf"; // 更改 "pdf" 為 "docx" 以輸出 Word 格式
// 開啟源文件
Document document = new Document(sourceFile);
// 替換文字
document.Range.Replace("old text", "new text", new FindReplaceOptions { MatchCase = false });
// 保存目標文件
if (fileFormat == "pdf")
{
targetFile += ".pdf";
document.Save(targetFile, SaveFormat.Pdf);
}
else
{
targetFile += ".docx";
document.Save(targetFile, SaveFormat.Docx);
}
}
}
}
using System;
using GemBox.Document;
namespace ReplaceTextAndExport
{
class Program
{
static void Main(string[] args)
{
// 註冊 GemBox.Document
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
string sourceFile = @"C:\Example\Source.docx";
string targetFile = @"C:\Example\Target";
string fileFormat = "pdf"; // 更改 "pdf" 為 "docx" 以輸出 Word 格式
// 開啟源文件
DocumentModel document = DocumentModel.Load(sourceFile);
// 替換文字
document.Content.Replace("old text", "new text", true, true);
// 保存目標文件
if (fileFormat == "pdf")
{
targetFile += ".pdf";
document.Save(targetFile, SaveOptions.PdfDefault);
}
else
{
targetFile += ".docx";
document.Save(targetFile, SaveOptions.DocxDefault);
}
}
}
}
你可以先比較一下哪種寫法
比較合你胃口 再選擇
僅供參考
word can using Microsoft.Office.Interop.Word
pdf can using iTextSharp.text.pdf
前端可以用表單把東西丟到後端
後端解析你的文件後編譯成word或pdf
再回傳給前端連結下載