SpirePDFUtility

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();
        }


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
读取PDF文件中的信息 package com.zht; import java.io.File; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; public class ReadPDF { public static void main(String[] args) { //需要复制的目标文件或目标文件夹 String pathname = "F:\\读取PDF中的信息"; // File file = new File(pathname); List list = new ArrayList(); readFile(pathname,list); for(int j=0;j<list.size();j++) { // System.out.println("当前第"+(j+1)+"个----"+list.get(j)); //创建PdfDocument实例 PdfDocument doc = new PdfDocument(); //加载PDF文件 doc.loadFromFile(list.get(j)); StringBuilder sb = new StringBuilder(); PdfPageBase page; //遍历PDF页面,获取文本 for (int i = 0; i < doc.getPages().getCount(); i++) { page = doc.getPages().get(i); sb.append(page.extractText(true)); } // System.out.println(sb.toString()); String str = getStr(sb.toString()); System.out.println(str); String[] arr = str.split(";"); String gh = ""; String gw = ""; for(int i=0;i<arr.length;i++) { arr[i] = arr[i].trim(); if(i==0) { gh = arr[i]; }else if(i==1) { gw = arr[i]; }else { arr[i] = arr[i].replace(gh, "").replace(gw, ""); } } // System.out.println(); insertSQL(arr); // FileWriter writer; // try { ////将文本写入文本文件 // writer = new FileWriter("f://ExtractText.txt"); // writer.write(sb.toString()); // writer.flush(); // } catch (IOException e) { // e.printStackTrace(); // } doc.close(); } } public static String getStr2(String str) { try { byte[] bs = str.getBytes("utf-8"); for(int i=0;i<bs.length;i++) { byte b = bs[i]; if(b==0) { bs[i]=9; } } str =

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值