0

嗨,我正在为 .Net 版本 17.3.0.0 使用 ApsosePDF。我已经使用 Aspose 成功为 pdf 文件添加了水印,一切正常,但我无法从这些 pdf 文件中获取现有的水印对象。下面是我的示例代码:

   public bool CheckForWatermark(Stream inputStream)
    {
        var pdfDocument = new Aspose.Pdf.Document(inputStream);
        foreach (Page page in pdfDocument.Pages)
        {
            var hasWatermark = false;
            foreach (Artifact artifact in page.Artifacts)
            {
                hasWatermark = artifact.Subtype == Artifact.ArtifactSubtype.Watermark;
            }
            if (!hasWatermark) return false;
        }
        return true;
    }

这里page.Artifacts总是返回零计数。我也在他们的支持论坛中提出了一个问题。令人沮丧的是,这样的文档化和通用代码不起作用。

4

1 回答 1

1

请确保您在 PDF 中正确添加水印。您还可以通过设置不透明度来在 PDF 文件中添加 ImageStamp,这也看起来像水印。而在谈论水印时,请检查以下代码片段以添加它并稍后检索它。

Document pdfDocument = new Document();
System.Drawing.Image img = new Bitmap(dataDir + "your-image.jpg");
Watermark wm = new Watermark(img, new Rectangle(50, 100, 100, 200));
pdfDocument.Pages.Add().Watermark = wm;
pdfDocument.Save(dataDir + "output.pdf");
pdfDocument = new Document(dataDir + "output.pdf");
foreach (Artifact artifact in pdfDocument.Pages[1].Artifacts)
{
 Console.WriteLine(artifact.Subtype + " " + artifact.Text + " " + artifact.Rectangle);
}

我已经检查了上面的代码片段。它工作正常。

PS:我在 Aspose 担任支持开发人员。

于 2017-05-02T15:51:46.793 回答