PDFsharp示例“ExportImages”删除水印

时间:2015-09-26 16:19:08

标签: c# pdfsharp

您好我正在使用PDFsharp示例将PDF转换为图像格式。但我的PDF有一个日期戳(水印),这在图像文件中丢失。有没有办法在图像上加盖印章?

代码(http://www.pdfsharp.net/wiki/ExportImages-sample.ashx

private void GetImageFromPdf(string fileNamePath)
    {
        PdfDocument document = PdfReader.Open(fileNamePath);

        int imageCount = 0;
        // Iterate pages
        foreach (PdfPage page in document.Pages)
        {
            // Get resources dictionary
            PdfDictionary resources = page.Elements.GetDictionary("/Resources");
            if (resources != null)
            {
                // Get external objects dictionary
                PdfDictionary xObjects = resources.Elements.GetDictionary("/XObject");
                if (xObjects != null)
                {
                    ICollection<PdfItem> items = xObjects.Elements.Values;
                    // Iterate references to external objects
                    foreach (PdfItem item in items)
                    {
                        PdfReference reference = item as PdfReference;
                        if (reference != null)
                        {
                            PdfDictionary xObject = reference.Value as PdfDictionary;
                            // Is external object an image?
                            if (xObject != null && xObject.Elements.GetString("/Subtype") == "/Image")
                            {
                                ExportImage(xObject, ref imageCount);
                            }
                        }
                    }
                }
            }
        }
        System.Windows.Forms.
        MessageBox.Show(imageCount + " images exported.", "Export Images");

    }

    static void ExportImage(PdfDictionary image, ref int count)
    {
        string filter = image.Elements.GetName("/Filter");
        switch (filter)
        {
            case "/DCTDecode":
                ExportJpegImage(image, ref count);
                break;

            //case "/FlateDecode":
            //    ExportAsPngImage(image, ref count);
            //    break;
        }
    }

1 个答案:

答案 0 :(得分:0)

该示例显示了如何提取嵌入在PDF文件中的JPEG文件。 将PDF页面渲染为图像文件。

如果文本水印覆盖图像,那么您将只获得图像。

PDFsharp无法呈现PDF文件,因此无法获取包含水印作为图形文件的PDF页面。