水印是显示在文档内容后面的淡色文字或图片,可以用于指示文档的状态(保密、草稿等),也可以含蓄地展示公司徽标。水印有助于提示文档的来源,从而避免未经允许的复制和转发。本文将介绍如何使用 Spire.PDF for C++ 在 PDF 文档中添加图片水印。
有两种方法可以将 Spire.PDF for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。
如何将 Spire. PDF for C++ 集成到 C++ 程序中
Sprie.PDF for C++ 提供的 PdfPageBase->GetCanvas()->DrawImage() 方法可以在 PDF 页面的任意位置绘制图片,而通过对图片的透明度进行调节可以实现淡色效果,使其不覆盖文档内容。添加单一图片水印的操作步骤如下:
#include "Spire.Pdf.o.h"
using namespace Spire::Pdf;
int main()
{
//创建PdfDocument的对象
PdfDocument* document = new PdfDocument();
//载入PDF文件
document->LoadFromFile(L"C:/我们之间的距离.pdf");
//载入图片
PdfImage* img = PdfImage::FromFile(L"C:/Logo.png");
//获取图片的高度和宽度
int imageWidth = img->GetWidth();
int imageHeight = img->GetHeight();
for (int i = 0; i < document->GetPages()->GetCount(); i++)
{
//获取指定页面
PdfPageBase* page = document->GetPages()->GetItem(i);
//获取页面的高度和宽度
float pageWidth = (float)(page->GetActualSize()->GetWidth());
float pageHeight = (float)(page->GetActualSize()->GetHeight());
//设置透明度
page->GetCanvas()->SetTransparency(0.3f);
//将图片绘制在页面中央
page->GetCanvas()->DrawImage(img, pageWidth / 2 - imageWidth / 2, pageHeight / 2 - imageHeight / 2, imageWidth, imageHeight);
}
//保存文档
document->SaveToFile(L"Output/单一图片水印.pdf");
document->Close();
delete document;
}
PdfTilingBrush 类表示平铺画笔,可以生成重复平铺图案来填充区域。以下是插入平铺水印的详细操作步骤:
#include "Spire.Pdf.o.h"
using namespace Spire::Pdf;
void InsertTiledImageWatermark(PdfPageBase* page, PdfImage* img, int row, int column) {
//创建平铺笔刷
PdfTilingBrush* brush = new PdfTilingBrush(new SizeF(page->GetCanvas()->GetSize()->GetWidth() / (int)(row), page->GetCanvas()->GetSize()->GetHeight() / (int)(column)));
//设置透明度
brush->GetGraphics()->SetTransparency(0.3);
//将图片绘制在笔刷上
brush->GetGraphics()->DrawImage(img, new PointF((brush->GetSize()->GetWidth() - img->GetWidth()) / 2.f, (brush->GetSize()->GetHeight() - img->GetHeight()) / 2.f));
//使用笔刷将图片绘制在页面上
page->GetCanvas()->DrawRectangle(brush, new RectangleF(new PointF(0, 0), page->GetCanvas()->GetSize()));
}
int main()
{
//创建PdfDocument的对象
PdfDocument* pdf = new PdfDocument();
//载入PDF文件
pdf->LoadFromFile(L"C:/我们之间的距离.pdf");
//载入图片
PdfImage* img = PdfImage::FromFile(L"C:/Logo.png");
//循环遍历文档页面以添加水印
for (int i = 0; i < pdf->GetPages()->GetCount(); i++) {
//获取一个页面
PdfPageBase* page = pdf->GetPages()->GetItem(i);
//添加水印到页面
InsertTiledImageWatermark(page, img, 3, 3);
}
//保存文档
pdf->SaveToFile(L"Output/平铺图片水印.pdf");
pdf->Close();
delete pdf;
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Email 6.3.1 已发布。该版本新增支持 OAuth2 认证。同时,该版本还修复了一些已知问题,如发送邮件时程序报错“Unable to read data from the transport connection”的问题。详情请阅读以下内容。
新功能:
问题修复:
PDF 文件非常适合在不同类型的设备上呈现和跨平台共享,但不得不承认编辑 PDF 是一件具有挑战性的事。当您收到一个PDF文件,需要根据里面的内容准备演示文稿时,建议将PDF文件转换为PowerPoint文档,以获得更好的演示效果,同时也保证内容可以进一步编辑。本文将演示如何使用 Spire.PDF for .NET 以编程方式将 PDF 转换为 PowerPoint 演示文稿。
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF从版本 8.11.10 开始,Spire.PDF for .NET 支持使用 PdfDocument.SaveToFile() 方法将 PDF 转换为 PPTX。使用此方法,PDF 文件的每一页都将转换为 PowerPoint 中的一张幻灯片。 以下是将 PDF 文件转换为可编辑的 PowerPoint 文档的步骤。
using Spire.Pdf;
namespace PDFtoPowerPoint
{
class Program
{
static void Main(string[] args)
{
//创建一个 PdfDocument 实例
PdfDocument pdf = new PdfDocument();
//加载示例 PDF 文档
pdf.LoadFromFile("成都第31届世界大学生夏季运动会.pdf");
//将 PDF 转换为 PPTX 文档
pdf.SaveToFile("将PDF转为PowerPoint文档.pptx", FileFormat.PPTX);
}
}
}Imports Spire.Pdf
Namespace PDFtoPowerPoint
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'创建一个 PdfDocument 实例
Dim pdf As PdfDocument = New PdfDocument()
'加载示例 PDF 文档
pdf.LoadFromFile("成都第31届世界大学生夏季运动会.pdf")
'将 PDF 转换为 PPTX 文档
pdf.SaveToFile("将PDF转为PowerPoint文档.pptx", FileFormat.PPTX)
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
PDF 文档可以在不同设备上以相同的外观展示内容,而且易于分享和传送。但 PDF 文档不适合编辑,在 PDF 文档中修改内容或格式是非常困难的。因此,很多人会选择将 PDF 文档转换为易于编辑的 Word 文档,从而方便对文档中的内容进行修改。
本文将介绍如何使用 Spire.PDF for C++ 以固定布局模式或流动结构模式将 PDF 文件转换为 Word 文档。
有两种方法可以将 Spire.PDF for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。
如何将 Spire. PDF for C++ 集成到 C++ 程序中
在默认情况下,使用 PdfDocument->SaveToFile() 方法将 PDF 文件保存为 Word 文档时,如果没有进行转换选项设置,输出的 Word 文档内容将会以固定布局的形式排布。以下是详细操作步骤:
#include "Spire.Pdf.o.h"
using namespace Spire::Pdf;
int main()
{
//创建PdfDocument的对象
PdfDocument* pdf = new PdfDocument();
//载入PDF文件
pdf->LoadFromFile(L"C:/我们之间的距离.pdf");
//将文档保存为Doc文件
pdf->SaveToFile(L"Output/PDF转Word.doc", FileFormat::DOC);
//将文档保存为Docx文件
pdf->SaveToFile(L"Output/PDF转Word.docx", FileFormat::DOCX);
pdf->Close();
delete pdf;
}
Spire.PDF for C++ 中的 PdfDocument->GetConvertOptions()->SetPdfToDocOptions(true, true) 方法可以将转换模式更改为流动结构模式。以下是使用流动结构模式将 PDF 文件转换为 Word 文档的详细操作步骤:
#include "Spire.Pdf.o.h"
using namespace Spire::Pdf;
int main()
{
//创建PdfDocument的对象
PdfDocument* pdf = new PdfDocument();
//载入PDF文件
pdf->LoadFromFile(L"C:/我们之间的距离.pdf");
//将转换模式设置为流动结构模式
pdf->GetConvertOptions()->SetPdfToDocOptions(true, true);
//将文档保存为Doc文件
pdf->SaveToFile(L"Output/PDF转Word.doc", FileFormat::DOC);
//将文档保存为Docx文件
pdf->SaveToFile(L"Output/PDF转Word.docx", FileFormat::DOCX);
pdf->Close();
delete pdf;
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc 11.3.1发布。本次更新增强了 Word 到 PDF的转换。此外,许多已知问题也在该版本中成功被修复,如修复了目录域更新失败的问题。详情请阅读以下内容。
问题修复:
Excel 中的数据条是一种内置类型的条件格式,可在单元格中插入彩色条以比较其中的值。条形图的长度取决于单元格的值,最长的条形图对应于所选数据范围内的最大值,这样您就可以一目了然。在本文中,您将学习如何使用 Spire.XLS for .NET 在单元格范围内添加数据条。
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS数据条是一个极好的工具,它可以直观地比较选定单元格范围内的数据。使用 Spire.XLS for .NET,您可以将数据条添加到指定的数据范围并设置其格式。以下是详细步骤。
using Spire.Xls;
using Spire.Xls.Core;
using Spire.Xls.Core.Spreadsheet.Collections;
using Spire.Xls.Core.Spreadsheet.ConditionalFormatting;
using System.Drawing;
namespace ApplyDataBar
{
class Program
{
static void Main(string[] args)
{
//创建Workbook实例
Workbook workbook = new Workbook();
//加载Excel文档示例
workbook.LoadFromFile("示例文档.xlsx");
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//向工作表中添加条件格式
XlsConditionalFormats xcfs = sheet.ConditionalFormats.Add();
//设置应用条件格式的范围
xcfs.AddRange(sheet.Range["C2:C16"]);
//添加条件并将其格式类型设置为DataBar
IConditionalFormat format = xcfs.AddCondition();
format.FormatType = ConditionalFormatType.DataBar;
//设置数据条的填充效果和颜色
format.DataBar.BarFillType = DataBarFillType.DataBarFillGradient;
format.DataBar.BarColor = Color.Green;
//保存结果文档
workbook.SaveToFile("应用数据条到单元格范围.xlsx", ExcelVersion.Version2013);
}
}
}Imports Spire.Xls
Imports Spire.Xls.Core
Imports Spire.Xls.Core.Spreadsheet.Collections
Imports Spire.Xls.Core.Spreadsheet.ConditionalFormatting
Imports System.Drawing
Namespace ApplyDataBar
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'创建Workbook实例
Dim workbook As Workbook = New Workbook()
'加载Excel文档示例
workbook.LoadFromFile("示例文档.xlsx")
'获取第一个工作表
Dim sheet As Worksheet = workbook.Worksheets(0)
'向工作表中添加条件格式
Dim xcfs As XlsConditionalFormats = sheet.ConditionalFormats.Add()
'设置应用条件格式的范围
xcfs.AddRange(sheet.Range("C2:C16"))
'添加条件并将其格式类型设置为DataBar
Dim format As IConditionalFormat = xcfs.AddCondition()
format.FormatType = ConditionalFormatType.DataBar
'设置数据条的填充效果和颜色
format.DataBar.BarFillType = DataBarFillType.DataBarFillGradient
format.DataBar.BarColor = Color.Green
'保存结果文档
workbook.SaveToFile("应用数据条到单元格范围.xlsx", ExcelVersion.Version2013)
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.XLS for Java 13.3.1 已发布。本次更新增强了 Excel 到 PDF 的转换。此外,该版本还成功修复了许多已知问题,如自适应宽度效果跟微软Excel不一致的问题。详情请阅读以下内容。
问题修复:
Spire.PDF for C++ 是一款独立 PDF 控件,用于 C++ 程序中创建、读取、写入、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。
Spire.PDF for C++ 支持的功能十分全面,例如文档安全性设置,提取 PDF 文本、附件、图片,创建 PDF 文件包,PDF 合并和拆分,添加骑缝章,更新 Metadata,设置 Section,绘制图形、插入图片、导入数据等等。除此以外,Spire.PDF 还可以将 TXT 文本、图片、HTML 和 SVG 高质量地转换为 PDF 文件格式。
Spire.Presentation for C++ 是一款专业的 PowerPoint® 组件,使用该组件,开发者可以在 C++ 平台上对 PowerPoint® 文档进行生成、读取、写入、修改和转换等操作。 作为一个独立的控件,Spire.Presentation for C++ 的运行无需要安装 Microsoft PowerPoint。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。
Spire.Presentation for C++ 支持 PPT、PPS、PPTX、PPSX 格式的 PowerPoint® 文档,主要支持的功能有写入文本,插入图片,添加图形、表格、动画效果、音频和视频等元素到幻灯片。Spire.Presentation for C++ 也支持将幻灯片转换为 JPG、PDF、XPS、OFD、SVG、HTML 格式文件。
Spire.XLS for C++ 是一款专业的 C++ Excel 组件,可以用在各种 C++ 框架及应用程序中。Spire.XLS for C++ 提供了一个对象模型 Excel API,使开发人员可以快速地在 C++ 平台上完成对 Excel 的各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换。
Spire.XLS for C++ 是一个独立的 Excel 组件,不依赖于 Microsoft Office Excel。它同时支持旧版的 Excel 97-2003(.xls)格式文档和新版的 Excel 2007、Excel 2010、Excel 2013、Excel 2016、Excel 2019(.xlsx, .xlsb, .xlsm)以及 Open Office(.ods)格式文档。与自己开发 Excel 程序或使用 Microsoft Automation 相比,它具有速度快和可靠性高等优点。同时兼容大部分国产操作系统,能够在中标麒麟和中科方德等国产操作系统中正常运行。