namespace vcl
{ // A external PDF stream, which stores the PDF stream data as byte array. // This struct is also responsible to parsing the stream as a PDFDocument, // and store its instance for the life-cycle of the struct, so that it // reused to avoid unnecessary parsing. struct VCL_DLLPUBLIC ExternalPDFStream
{
BinaryDataContainer maDataContainer;
std::shared_ptr<filter::PDFDocument> mpPDFDocument;
std::map<sal_Int32, sal_Int32> maCopiedResources;
std::shared_ptr<filter::PDFDocument>& getPDFDocument()
{ if (!mpPDFDocument)
{
std::shared_ptr<SvStream> aPDFStream = maDataContainer.getAsStream(); auto pPDFDocument = std::make_shared<filter::PDFDocument>(); if (!pPDFDocument->ReadWithPossibleFixup(*aPDFStream))
{
SAL_WARN("vcl.pdfwriter", "PDFWriterImpl::writeReferenceXObject: reading the PDF document failed");
} else
{
mpPDFDocument = std::move(pPDFDocument);
}
} return mpPDFDocument;
}
};
// Class to manage external PDF streams, for the de-duplication purpose. class ExternalPDFStreams
{ private:
std::map<std::vector<sal_uInt8>, sal_Int32> maStreamIndexMap;
std::vector<ExternalPDFStream> maStreamList;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.