我需要将PDF文件第一页拆分出来,然后把拆分出来的PDF文本层全部删除掉,我发现 OperatorSelector无法删除PDF文本层。
输入文件我使用以下代码进行了内容缩小A4。
Aspose.Pdf.Document document = new Aspose.Pdf.Document(fileName);
//PDF文件编辑器 创建PdfFileEditor对象
Aspose.Pdf.Facades.PdfFileEditor fileEditor = new Aspose.Pdf.Facades.PdfFileEditor();
//ContentsResizeParameters翻译:内容调整参数
Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeParameters parameters = new Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeParameters(
//左侧边距 左边距=页面宽度的10%
Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeValue.Percents(0),
//内容宽度 新内容宽度自动计算为宽度-左边距-右边距(100%-10%-10%=80%) Aspose.Pdf.PageSize.A4.Width
Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeValue.Units(Aspose.Pdf.PageSize.A4.Width),
//右边距 右边距为页面的10%
Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeValue.Percents(0),
//上边距 上边距=高度的10%
Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeValue.Percents(0),
//内容高度 自动计算新内容高度(类似于宽度) Aspose.Pdf.PageSize.A4.Height
Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeValue.Units(Aspose.Pdf.PageSize.A4.Height),
//底部边距 下边距为10%
Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeValue.Percents(0)
);
//ResizeContents是调整内容大小
fileEditor.ResizeContents(document, parameters);
输入文件:input.pdf (900.5 KB)
//拆分
PdfFileEditor pdfFileEditor = new PdfFileEditor();
bool susee = pdfFileEditor.Extract("input.pdf", 1, 1, "saveSplit.pdf");
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("saveSplit.pdf");
//循环遍历所有 pdf 文档页
for (int i = 1; i <= pdfDocument.Pages.Count; i++)
{
Aspose.Pdf.Page page = pdfDocument.Pages[i];
//Aspose.Pdf.OperatorSelector operatorSelector = new Aspose.Pdf.OperatorSelector(new Aspose.Pdf.Operator.TextShowOperator());
OperatorSelector operatorSelector = new OperatorSelector(new Aspose.Pdf.Operators.TextShowOperator());
//选择页面上的所有文本
page.Contents.Accept(operatorSelector);
//删除所有文本
page.Contents.Delete(operatorSelector.Selected);
}
pdfDocument.Save(newfile, Aspose.Pdf.SaveFormat.Pdf);