Я хочу создать трехмерную аннотацию, но я не знаю, как читать поток файлов PR C. Может кто-нибудь мне помочь? Файл PDF, созданный с помощью следующего кода, при открытии 3D-аннотации предлагает проанализировать 3D-ошибку.
char *pszFilename = "test3D.pdf";
PdfStreamedDocument document(pszFilename);
PdfPage* pPage;
PdfFont* pFont;
pPage = document.CreatePage(PdfPage::CreateStandardPageSize(ePdfPageSize_A4));
PdfRect rect(100.0, 100.0, 300.0, 300.0);
PdfAnnotation* pAnnotation = page->CreateAnnotation(ePdfAnnotation_3D, rect);
char *streamBuff = NULL;
pdf_long bufLen = 0;
PdfFileInputStream fileStream("DK19191X_201_001.prc");
bufLen = fileStream.GetFileLength();
streamBuff = new char[bufLen + 1];
pdf_long readError = fileStream.Read(streamBuff, bufLen);
PdfString strStream(streamBuff, bufLen);
if (streamBuff)delete[]streamBuff;
PdfDictionary dict3dAnnot = pAnnotation->GetObject()->GetDictionary();
//3D Streams
PdfObject stream3d;
PdfObject prcObj(strStream);
PdfDictionary dirct3dStream = stream3d.GetDictionary();
dirct3dStream.AddKey(PdfName("Type"), PdfString("3D"));
dirct3dStream.AddKey(PdfName("Subtype"), PdfString("U3D"));
dirct3dStream.AddKey(PdfName("Filter"), PdfString("FlateDecode"));
dict3dAnnot.AddKey(PdfName("3DD"), prcObj);
painter.FinishPage();
document.Close();