PdfFileMend 类
插入 FormattedText 到 PDF 文档中似乎不是一项困难的任务,前提是您拥有该文档的原始可编辑版本。假设您创建了一个文档,然后想起需要添加另一行或者我们讨论的是更大体积的文档,在这两种情况下,Aspose.PDF Facades 都会帮助您。让我们考虑使用 PdfFileMend 类在现有 PDF 文件中添加文本的可能性。
在现有 PDF 文件中添加文本 (facades)
我们可以通过几种方式添加文本。 考虑第一个。我们获取FormattedText并将其添加到页面中。之后,我们指明左下角的坐标,然后将文本添加到页面。
public static void AddText01()
{
PdfFileMend mender = new PdfFileMend();
mender.BindPdf(_dataDir + "sample.pdf");
FormattedText message = new FormattedText("欢迎来到 Aspose!");
mender.AddText(message, 1, 10, 750);
// 保存输出文件
mender.Save(_dataDir + "PdfFileMend01_output.pdf");
}
检查它的外观:
第二种添加FormattedText的方法。此外,我们指明一个矩形,文本应该适合其中。
public static void AddText02()
{
PdfFileMend mender = new PdfFileMend();
mender.BindPdf(_dataDir + "sample.pdf");
FormattedText message = new FormattedText("欢迎来到 Aspose! 欢迎来到 Aspose!");
mender.AddText(message, 1, 10, 700, 55, 810);
mender.WrapMode = WordWrapMode.ByWords;
// 保存输出文件
mender.Save(_dataDir + "PdfFileMend02_output.pdf");
}
第三个示例提供了向指定页面添加文本的功能。在我们的示例中,让我们在文档的第1页和第3页添加一个标题。
public static void AddText03()
{
Document document = new Document(_dataDir + "sample.pdf");
document.Pages.Add();
document.Pages.Add();
document.Pages.Add();
PdfFileMend mender = new PdfFileMend();
mender.BindPdf(document);
FormattedText message = new FormattedText("欢迎使用Aspose!");
int[] pageNums = new int[] { 1, 3 };
mender.AddText(message, pageNums, 10, 750, 310, 760);
// 保存输出文件
mender.Save(_dataDir + "PdfFileMend03_output.pdf");
}
在现有PDF文件中添加图像(facades)
你是否曾尝试在现有的PDF文件中添加图像? 我们确信您知道这不是一项简单的任务。也许您正在在线填写表格,并且需要附上一张用于识别的照片,或者将您的照片附加到现有的简历上。以前,这样的任务是通过创建照片、将其附加到文档、进一步扫描和发送来解决的。这个过程非常麻烦且耗时。
在现有的PDF文件中添加图像和文本是一个常见的需求,而com.aspose.pdf.facades命名空间很好地满足了这一需求。它提供了一个类PdfFileMend,允许您在PDF文件中添加图像。
这篇文章将向您展示如何使用com.aspose.pdf.facades将图像插入PDF。此外,还有几种将图像添加到PDF的方法。
通过设置矩形的参数将图像插入PDF文档。
public static void AddImage01()
{
Document document = new Document(_dataDir + "sample.pdf");
PdfFileMend mender = new PdfFileMend();
// 将图像加载到流中
var imageStream = System.IO.File.OpenRead(_dataDir + "logo.png");
mender.BindPdf(document);
mender.AddImage(imageStream, 1, 10, 650, 110, 750);
// 保存输出文件
mender.Save(_dataDir + "PdfFileMend04_output.pdf");
}
让我们考虑第二个代码片段。通过使用 CompositingParameters 类参数的变体,我们可以获得不同的设计效果。我们尝试了其中之一。
public static void AddImage02()
{
Document document = new Document(_dataDir + "sample_color.pdf");
PdfFileMend mender = new PdfFileMend();
// 将图像加载到流中
var imageStream = System.IO.File.OpenRead(_dataDir + "logo.png");
mender.BindPdf(document);
int pageNum = 1;
int lowerLeftX = 10;
int lowerLeftY = 650;
int upperRightX = 110;
int upperRightY = 750;
CompositingParameters compositingParameters = new CompositingParameters(BlendMode.Multiply);
mender.AddImage(imageStream, pageNum, lowerLeftX, lowerLeftY, upperRightX, upperRightY, compositingParameters);
// 保存输出文件
mender.Save(_dataDir + "PdfFileMend05_output.pdf");
}
在以下代码片段中,我们使用 ImageFilterType。ImageFilterType 指示将用于编码的流编解码器的类型,默认情况下为 Jpeg。如果您从 PNG 格式加载图像,那么它将在文档中保存为 JPEG(或我指定的其他格式)。
public static void AddImage03()
{
Document document = new Document(_dataDir + "sample_color.pdf");
PdfFileMend mender = new PdfFileMend();
// 将图像加载到流中
var imageStream = System.IO.File.OpenRead(_dataDir + "logo.png");
mender.BindPdf(document);
int pageNum = 1;
int lowerLeftX = 10;
int lowerLeftY = 650;
int upperRightX = 110;
int upperRightY = 750;
CompositingParameters compositingParameters = new CompositingParameters(BlendMode.Exclusion, ImageFilterType.Flate);
mender.AddImage(imageStream, pageNum, lowerLeftX, lowerLeftY, upperRightX, upperRightY, compositingParameters);
// 保存输出文件
mender.Save(_dataDir + "PdfFileMend06_output.pdf");
}
在下一个代码片段中,您可以注意到 IsMasked 方法的使用。
IsMasked 是一个标志,用于指示是否对图像应用蒙版以实现原始图像的透明度
public static void AddImage04()
{
Document document = new Document(_dataDir + "sample_color.pdf");
PdfFileMend mender = new PdfFileMend();
// 将图像加载到流中
var imageStream = System.IO.File.OpenRead(_dataDir + "logo.png");
mender.BindPdf(document);
int pageNum = 1;
int lowerLeftX = 10;
int lowerLeftY = 650;
int upperRightX = 110;
int upperRightY = 750;
CompositingParameters compositingParameters = new CompositingParameters(BlendMode.Multiply, ImageFilterType.Flate,false);
mender.AddImage(imageStream, pageNum, lowerLeftX, lowerLeftY, upperRightX, upperRightY, compositingParameters);
// 保存输出文件
mender.Save(_dataDir + "PdfFileMend07_output.pdf");
}