Как добавить аннотацию из одного PDF в другой PDF с помощью PDFsharp? - PullRequest
0 голосов
/ 23 марта 2020

Здесь я проверяю, содержит ли исходный файл PDF аннотации, затем пытаюсь получить каждую аннотацию через l oop и пытаюсь добавить ее на новую страницу PDF. Но он показывает ошибку, что не может изменить документ.

Есть ли способ использовать PDFsharp для копирования аннотаций с одной страницы PDF на другую?

Вот мой код:

PdfDocument DocumentReader_Po = new PdfDocument();
pdfPage_Po = Pdocument.AddPage();
pdfPage_Po = Pdocument.AddPage();
pdfPage_Po.Width = PageSizeConverter.ToSize(PdfSharp.PageSize.Letter).Width;
pdfPage_Po.Height = PageSizeConverter.ToSize(PdfSharp.PageSize.Letter).Height;
form = XPdfForm.FromFile(sourceFile);
if (form.Page.HasAnnotations)
{
    for (int j = 0; j < form.Page.Annotations.Count; j++)
    {
        var annot = form.Page.Annotations[j];
        var subType = annot.Elements.GetString(PdfAnnotation.Keys.Subtype);
        if (subType == "/Text")
        {
            pdfPage_Po.Annotations.Add(annot); 
        }
    }
}

1 Ответ

0 голосов
/ 25 марта 2020

Вы берете аннотацию из одного документа и пытаетесь добавить ее в новый документ.

Дикая догадка: вы не можете назначить элемент документа новому документу, поскольку «владелец» этого элемента уже установлен .

Создайте клон (глубокую копию без «владельца») аннотации и попробуйте добавить клон в новый документ.

...