使用Aspose.Words将Word转PDF
起因
项目中,用Office Com组件读取Word遇到很奇怪的问题,在一台机器偶尔出现假死的情况,而异常没有捕获到.所以想尝试替换该组件.
使用Aspose.Words组件将word转pdf
使用老版Aspose.Words在doc转pdf的时候,发现pdf文件的样式总是出现对不齐.1.第一种方式
aspose.words.nodecollection tables = doc.getchildnodes(nodetype.table, true);
for (int i = 0; i < tables.count - 1; i++)
{
rowcollection rows = (tables[i] as aspose.words.tables.table).rows;
foreach (aspose.words.tables.row row in rows)
{
cellcollection cells = row.cells;
foreach (aspose.words.tables.cell cell in cells)
{
string txt = cell.gettext().replace("\a", ""); //将\a替换为空
cell.firstparagraph.remove();
aspose.words.paragraph p = new aspose.words.paragraph(doc);
p.appendchild(new run(doc, txt));
cell.appendchild(p);
}
}
}
2. 第二种方式,将doc升级为docx,主要使用
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
Aspose.Words.Document doc = new Aspose.Words.Document("提取pdf.docx"); //加载docx文档
DocumentBuilder builder = new DocumentBuilder(doc);
//替换文本
doc.Range.Replace("$title", "测试检查", false, false);
doc.Range.Replace("$dyrq", DateTime.Now.ToString("yyyy-MM-dd"), false, false);
//使用书签
builder.MoveToBookmark("qm1");
builder.InsertImage("1.jpg", 50, 30);
Guid guid = Guid.NewGuid();
doc.Save(string.Format("{0}.doc", guid), SaveFormat.Doc); //生成doc
doc.Save(string.Format("{0}.pdf", guid), SaveFormat.Pdf); //生成pdf
doc.Print(); //打印,可以指定打印机
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
秋风
2018-04-12