中文官方网站
https://github.com/eiceblue/Spire.PDF-for-.NET
商业信息
https://www.qast.com/product/1589.html
案例
https://www.cnblogs.com/programYuan/p/13931392.html
模板
https://www.cnblogs.com/XWCloud/p/6831064.html
打开Word,点击 文件->选项->自定义功能区,勾选上“开发工具”:
主要使用文本域控件,插入作为标签:
// 首先需要引用 NPOI 库和 Spire.Doc 库
using NPOI.XWPF.UserModel;
using Spire.Doc;
// 定义输入和输出文件的路径
string inputFilePath = @"C:\input.docx";
string outputFilePath = @"C:\output.pdf";
// 使用 NPOI 读取 Word 文档
XWPFDocument document = new XWPFDocument(new FileStream(inputFilePath, FileMode.Open));
// 使用 Spire.Doc 库将 Word 文档转换为 PDF
Document spireDoc = new Document();
spireDoc.LoadFrom(document, FileFormat.Docx);
spireDoc.SaveToFile(outputFilePath, FileFormat.PDF);
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace We.Framework.Spire
{
/// <summary>
/// Sprie.Doc
/// Designed by XIAO
/// 2017-05-09
/// </summary>
public class WordHandler
{
public static bool ExportWordByFields<T>(T mod, string TempleteFilePath, string ExpFilePath)
{
if (mod == null)
{
throw new Exception("模型为空!");
}
System.Reflection.PropertyInfo[] properties = mod.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
if (properties.Length <= 0)
{
throw new Exception("模型属性为空!");
}
if (!File.Exists(TempleteFilePath))
{
throw new Exception("指定路径的模板文件不存在!");
}
try
{
Document doc = new Document();
doc.LoadFromFile(TempleteFilePath);
#region 替换文字
//doc.Replace("海关", "海关口岸", true, true);
//doc.Replace("报验", "报检", true, true);
#endregion
//清除表单域阴影
doc.Properties.FormFieldShading = false;
//遍历Word模板中的文本域(field.name为文本域名称)
foreach (FormField field in doc.Sections[0].Body.FormFields)
{
foreach (System.Reflection.PropertyInfo prop in properties)
{
string name = prop.Name; //属性名称
object value = prop.GetValue(mod, null); //属性值
string des = ((DescriptionAttribute)Attribute.GetCustomAttribute(prop, typeof(DescriptionAttribute))).Description;// 属性描述值
//注意:文本域名称 == 模型中属性的 Description 值 !!!!!!
//也可以: 文本域名称 == 模型中属性的 Name 值 !!!!!!
if (field.Name == des)
{
if (field.DocumentObjectType == DocumentObjectType.TextFormField) //文本域
{
if (prop.PropertyType.Name == "Boolean")
{
field.Text = "√"; //插入勾选符号
break;
}
else
{
field.Text = value.ToString(); //向Word模板中插入值
break;
}
}
else if (field.DocumentObjectType == DocumentObjectType.CheckBox) //复选框
{
(field as CheckBoxFormField).Checked = (value as bool?).HasValue ? (value as bool?).Value : false;
}
}
}
}
doc.SaveToFile(ExpFilePath, FileFormat.Docx);
doc.Close();
return true;
}
catch (Exception ex)
{
string msg = ex.Message;
return false;
}
}
}
}
文档更新时间: 2024-05-05 07:45 作者:admin