using Spire.Pdf;
using Spire.Pdf.Fields;
using Spire.Pdf.Graphics;
using Spire.Pdf.Widget;
using System;
using System.Drawing;
using System.IO;
namespace UtilityFactory.UtilityRoom
{
public class SpirePDFUtility
{
public static void pdfReplaceAll(PdfDocument pdf, string oldText, string newText)
{
PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
{
PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
//获取所有文本域
if (field is PdfTextBoxFieldWidget)
{
PdfTextBoxFieldWidget textBoxField = field as PdfTextBoxFieldWidget;
if (textBoxField.Name == oldText)
{
string FontName = StringUtility.HasChinese(newText) ? "宋体" : "Aria";
textBoxField.Font = new PdfTrueTypeFont(new Font(FontName, 10), true);
textBoxField.Text = newText;
}
}
}
}
public static void pdfReplaceOne(PdfDocument pdf, string oldText, string newText)
{
PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
{
PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
//获取所有文本域
if (field is PdfTextBoxFieldWidget)
{
PdfTextBoxFieldWidget textBoxField = field as PdfTextBoxFieldWidget;
if (textBoxField.Name == oldText)
{
string FontName = StringUtility.HasChinese(newText) ? "宋体" : "Aria";
textBoxField.Font = new PdfTrueTypeFont(new Font(FontName, 10), true);
textBoxField.Text = newText;
break;
}
}
}
}
public static void pdfReplaceCheckBoxAll(PdfDocument pdf, string oldText, bool newText)
{
PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
{
PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
//获取所有文本域
if (field is PdfCheckBoxWidgetFieldWidget)
{
PdfCheckBoxWidgetFieldWidget checkBoxField = field as PdfCheckBoxWidgetFieldWidget;
if (checkBoxField.Name == oldText)
{
if (newText)
{
checkBoxField.Checked = true;
}
else
{
checkBoxField.Checked = false;
}
}
}
}
}
public static void pdfReplaceCheckBoxOne(PdfDocument pdf, string oldText, bool newText)
{
PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
{
PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
//获取所有文本域
if (field is PdfCheckBoxWidgetFieldWidget)
{
PdfCheckBoxWidgetFieldWidget checkBoxField = field as PdfCheckBoxWidgetFieldWidget;
if (checkBoxField.Name == oldText)
{
if (newText)
{
checkBoxField.Checked = true;
}
else
{
checkBoxField.Checked = false;
}
break;
}
}
}
}
public static void pdfReplaceRadioButtonAll(PdfDocument pdf, string oldText)
{
PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
{
PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
if (field is PdfRadioButtonListFieldWidget)
{
PdfRadioButtonListFieldWidget radioBtnField = field as PdfRadioButtonListFieldWidget;
if (radioBtnField.Name == oldText)
{
try
{
radioBtnField.SelectedIndex = 0;
}
catch (Exception ex)
{
throw ex;
}
}
}
}
}
public static void pdfReplaceRadioButtonOne(PdfDocument pdf, string oldText)
{
PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
{
PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
if (field is PdfRadioButtonListFieldWidget)
{
PdfRadioButtonListFieldWidget radioBtnField = field as PdfRadioButtonListFieldWidget;
if (radioBtnField.Name == oldText)
{
radioBtnField.SelectedIndex = 0;
break;
}
}
}
}
public static void pdfMerge(PdfDocument pdf, string file)
{
String[] files = new String[] { file };
PdfDocumentBase pdf2 = pdf.PDFStandard;
PdfDocument.Merge(pdf2, files);
}
public static void pdfMergeFiles(string firstInputFile, string secInputFile)
{
PdfDocument.MergeFiles(firstInputFile, secInputFile);
}
public static void pdfMergeFiles(string[] Files)
{
PdfDocument.MergeFiles(Files);
}
public static void WatermarkAndToImages(Stream stream, string folderPath, ref int PageCount)
{
//加载license
Spire.License.LicenseProvider.SetLicenseFileFullPath(AppDomain.CurrentDomain.BaseDirectory + @"\Config\license.elic.xml");
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromStream(stream);
PageCount = pdf.Pages.Count;
//遍历PDF每一页
for (int i = 0; i < pdf.Pages.Count; i++)
{
//获取PDF文档的第一页
PdfPageBase page = pdf.Pages[i];
//绘制文本,设置文本格式并将其添加到页面
PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / 2, page.Canvas.ClientSize.Height / 3));
brush.Graphics.SetTransparency(0.3f);
brush.Graphics.Save();
brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2);
brush.Graphics.RotateTransform(-45);
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 20f), true);
brush.Graphics.DrawString("*** VISTRA CHINA SUPPORT ***", font, PdfBrushes.Red, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
brush.Graphics.Restore();
brush.Graphics.SetTransparency(1);
page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.ClientSize));
//将PDF页转换成bitmap图形
//System.Drawing.Image bmp = pdf.SaveAsImage(i, PdfImageType.Bitmap, Convert.ToInt32(page.Canvas.ClientSize.Width), Convert.ToInt32(page.Canvas.ClientSize.Height));
System.Drawing.Image bmp = pdf.SaveAsImage(i, PdfImageType.Bitmap, 400, 400);
//将bitmap图形保存为png图片
string fileName = string.Format(folderPath + @"\page-{0}.jpeg", i + 1);
bmp.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
}
//关闭文档
pdf.Close();
}
}
}
SpirePDFUtility
于 2020-04-20 15:49:42 首次发布