Я пытаюсь создать PDF-файл, скопировав 3D-модель из другой, которая установлена в качестве аннотации. Это работает, но я не могу изменить его размер. когда я открываю файл, сначала я получаю правильный размер, но если я нажимаю на любую точку в файле, «аннотация» снова преобразуется. У кого-нибудь есть идеи, как мне сохранить размеры? Я пробовал функцию GetIndirectReference через pdfobject, но безуспешно.
string src = "C:/1/inp1.pdf";
string dest = "C:/1/out.pdf";
PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
PdfPage firstPage = pdfDoc.GetFirstPage();
IList<PdfAnnotation> list = firstPage.GetAnnotations();
foreach (PdfAnnotation pdfAnnotation in list)
{
PdfString mmm = pdfAnnotation.GetName();
PdfString nanan = new PdfString(mmm.GetValue());
PdfString momo = new PdfString("pdf3dsdk_id_1");
if (nanan.GetValue() == momo.GetValue())
{
Rectangle rectangle = new Rectangle(20, 20, 200, 200);
PdfArray rectBB = new PdfArray(rectangle);
pdfAnnotation.SetRectangle(rectBB);
PdfArray recA = pdfAnnotation.GetRectangle(); //to proof..
//pdfDoc.AddNewPage().AddAnnotation(pdfAnnotation);
PdfObject obj1 = pdfAnnotation.GetPdfObject();
obj1.GetIndirectReference(); //not working
}
}
//onother way, but simply the same iussue..
// PdfDictionary page = pdfDoc.GetFirstPage().GetPdfObject();
// PdfArray annots = page.GetAsArray(PdfName.Annots);
// PdfDictionary sticky = annots.GetAsDictionary(1);
// PdfArray stickyRect = sticky.GetAsArray(PdfName.Rect);
// PdfArray stickyRectangle = new PdfArray(new float[] {
// stickyRect.GetAsNumber(0).FloatValue() +120 , stickyRect.GetAsNumber(1).FloatValue(),
// stickyRect.GetAsNumber(2).FloatValue() +50, stickyRect.GetAsNumber(3).FloatValue() - 30
//});
//sticky.Put(PdfName.Rect, stickyRectangle);
pdfDoc.Close();
Файл с моделью: https://drive.google.com/file/d/1fcmglAnjtgQKHyW6qajEFkT_O89hOWu3/view?usp=sharing
Вывод перед нажатием:
![enter image description here](https://i.stack.imgur.com/FJTV0.png)
Кто-нибудь может мне помочь?