【Spire.PDF】Spire.PDF导出报告之一获取与破解

【Spire.PDF】Spire.PDF导出报告之一获取与破解
【Spire.PDF】Spire.PDF导出报告之二基本绘制Draw
【Spire.PDF】Spire.PDF导出报告之三表格Grid
【Spire.PDF】Spire.PDF导出报告之四报告模板
【Spire.PDF】Spire.PDF导出报告之实用工具类PdfUtility

Spire.PDF导出报告之一获取与破解

Spire.PDF版本:5.1

https://www.e-iceblue.com/Download/download-pdf-for-net-now.html
到官网下载(需要注册登录才能下载),安装并获取两个dll文件

链接:https://pan.baidu.com/s/1_YijYkjogH1bZ30gbpFMCQ
提取码:k5zn

Spire.License.dll 版本:1.3.7.40
Spire.Pdf.dll 版本:5.1.0.2040

新建项目,添加两个dll的应用

添加命名空间

using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Grid;

新建类PDF生成工具类PdfUtility,方便使用和维护

添加基本属性

/// <summary>
/// PDF文档
/// </summary>
public PdfDocument Doc { get; private set; }
/// <summary>
/// 页面
/// </summary>
public PdfPageBase Page { get; private set; }

添加页面操作方法

/// <summary>
/// 增加页面
/// </summary>
public void PagesAdd()
{
    Page = Doc.Pages.Add();
}

/// <summary>
/// 移除页面
/// </summary>
/// <param name="page">要移除的页面</param>
public void PageRemove(PdfPageBase page)
{
    Doc.Pages.Remove(page);
}

添加字体设置

#region Font,BrushColor,PenColor
/// < summary>
/// 设置字体大小样式
/// </ summary>
/// < param name="emSize">大小</ param>
/// < param name="IsBold">是否加粗,默认不加粗</ param>
/// <returns>字体大小样式</returns>
public PdfTrueTypeFont Font(float emSize, bool IsBold = false)
{
    return new PdfTrueTypeFont(new Font("宋体", emSize, IsBold ? FontStyle.Bold : FontStyle.Regular), true);//true防止中文乱码
}

/// < summary>
/// 设置笔刷颜色(用于填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部)
/// </ summary>
/// < param name="color">颜色</ param>
/// <returns>PdfSolidBrush</returns>
public PdfSolidBrush BrushColor(Color color)
{
    return new PdfSolidBrush(color);
}

/// < summary>
/// 设置画笔颜色(用于绘制直线和曲线)
/// </ summary>
/// < param name="color">颜色</ param>
/// < param name="width">画笔的宽度,默认为1</ param>
/// <returns>画笔颜色</returns>
public PdfPen PenColor(Color color, float width = 1)
{
    return new PdfPen(color, width);
}

#endregion

添加初始化方法

/// < summary>
/// 初始化
/// </ summary>
public void Init()
{
    Doc = new PdfDocument();
    Doc.PageSettings.Margins.All = 0;//设置边距为0,默认边距为40
}

添加绘制文本方法

 /// <summary>
 /// 绘制文本
 /// </summary>
 /// <param name="s">字符串文本</param>
 /// <param name="font">文本格式</param>
 /// <param name="brush">文本颜色</param>
 /// <param name="point">绘制的位置</param>
 /// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
 public void DrawString(string s, PdfTrueTypeFont font, PdfSolidBrush brush, PointF point, PdfPageBase page = null)
 {
     (page ?? Page).Canvas.DrawString(s, font, brush, point);
 }

添加保存方法

/// <summary>
/// 保存并打开
/// </summary>
/// <param name="name"></param>
public void SaveToPDF(string name)
{
    string path = Application.StartupPath + "\\Reports\\" + name + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";//以日期为文件名,以防存在打开文件
    Doc.SaveToFile(path);
    Doc.Close();
    Process.Start(path);//打开文档
}

应用

PdfUtility pdfUtility = new PdfUtility();
pdfUtility.Init();
pdfUtility.PagesAdd();
pdfUtility.DrawString(pdfUtility.Page, "PDF文档测试", pdfUtility.Font(10), pdfUtility.BrushColor(Color.Black), new PointF(10, 10));
pdfUtility.SaveToPDF("PDFTest");

生成pdf后自动打开报告

发现出现Evaluation Warning : The document was created with Spire.PDF for .NET. 的警告
在这里插入图片描述
解决方案:在初始化时添加并删除第一页即可

/// <summary>
/// 初始化
/// </summary>
public void Init()
{
    Doc = new PdfDocument();
    Doc.PageSettings.Margins.All = 0;//设置边距为0,默认边距为40
    PagesAdd(); PageRemove(Page);//删除第一页,因为第一页有警告语
}

在这里插入图片描述

【Spire.PDF】Spire.PDF导出报告之一获取与破解
【Spire.PDF】Spire.PDF导出报告之二基本绘制Draw
【Spire.PDF】Spire.PDF导出报告之三表格Grid
【Spire.PDF】Spire.PDF导出报告之四报告模板
【Spire.PDF】Spire.PDF导出报告之实用工具类PdfUtility

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
spire.pdf是一个用于处理PDF文件的开源库,可用于提取PDF文档中的文本内容和坐标。 要获取文本的坐标,我们需要使用spire.pdf的相关方法和属性。首先,我们需要加载PDF文件,使用PdfDocument类的loadFromFile方法或loadFromStream方法来加载文件。 一旦加载了PDF文件,我们可以通过getPageCount方法获取PDF文件的总页数。然后,我们可以使用getPage方法来获取指定页数的PdfPage对象。 对于每一页,我们可以使用getPageContent方法来获取页面内容的字符串表示。然后,我们可以使用正则表达式或其他文本处理方法来提取文本坐标。根据PDF文件的结构,文本通常包含在Td、TD和TJ操作符中。这些操作符提供了文本字符串和坐标的信息。 我们可以使用正则表达式来匹配这些操作符,并提取坐标信息。例如,我们可以使用表达式"/(Td|TD|TJ)\s*?([\-0-9]+\s*?)+?/"来匹配这些操作符,并提取坐标信息。 在提取坐标信息后,我们可以将其存储到一个数据结构中,如List或数组。这样,我们就可以对PDF文件中的文本进行进一步的操作,如分析、搜索或渲染。 需要注意的是,PDF文件的结构复杂,提取文本坐标可能涉及到一些细节和特殊情况的处理。因此,我们需要了解PDF文件的结构和spire.pdf库的使用方法,以便准确地提取文本坐标。 总之,通过使用spire.pdf库,我们可以加载PDF文件并提取文本坐标。我们可以使用正则表达式或其他文本处理方法来匹配文本操作符,并提取坐标信息。这样,我们就可以对PDF文件中的文本进行有针对性的处理和分析。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreAmbWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值