From 4b6d1a12c2c0857e7f175c182d8de41a15a69c2f Mon Sep 17 00:00:00 2001 From: Francesco Pretto Date: Wed, 20 Mar 2024 22:47:20 +0100 Subject: [PATCH] Update TODO.md --- TODO.md | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/TODO.md b/TODO.md index ac6ec466..84a82c83 100644 --- a/TODO.md +++ b/TODO.md @@ -1,47 +1,48 @@ ### 1.0 -- PdfMemDocument: Check the DeviceStream is not empty before doing an incremental update/signing operation -- PdfMemDocument: Prevent Save() operation after signing operation -- PdfMemDocument: Release the device after all objects have been loaded (eg. after a full Save()) -- PdfParserObject: Release the device after loading -- Evaluate rename references to "sequential" signing to "async" +#### API Review - Consider converting protected PdfFontMetrics::GetFaceHandle() to return just FT_Face, and reference the face with FT_Reference_Face - Remove PdfEncryptMD5Base::GetMD5Binary and PdfEncryptMD5Base::GetMD5String and use common functions - PdfField: Evaluate make a virtual getValueObject() - Evaluate removing PdfObject::Null and PdfVariant::Null and introduce nullptr_t constructor overloads - PdfMemDocument: Consider removing SetEncrypt(encrypt) -- PdfEncrypt: Consider removing CreateFromEncrypt (shared_ptr in PdfMemDocument could be used now) -- PdfContents: Remove PdfContents::Reset(obj) (keep parameterless) - Review/refactor PdfColor: it should use new PdfColorSpace and not define a color space -- Review all page import functions to check correct working/improve the code -- Review PdfPageCollection::AppendDocumentPages(), - PdfPageCollection::InsertDocumentPageAt(), PdfPage::MoveAt() -- PdfCanvas: Add CopyTo facilities, see PdfContents - Review PdfNameTree +- PdfCanvas: Add CopyTo facilities, see PdfContents +- PdfPageCollection: Add iteration on PdfPage. See PdfAnnotationCollection +- PdfPageCollection::CreatePage() with PdfPageSize or default inferred from doc +- PdfPage: Add GetFields() iteration - Check accessibility of PdfEncrypt.h classes, check AESV3 naming - Rename NameToColorSpaceRaw/ColorSpaceToNameRaw to something more consistent? - More enum <-> strings functions and make them public - Make PdfObjectStream not flate filter by default in PdfMemDocument? -- PdfElement: Optimize, keep dictionary/array pointer. Add GetObjectPtr() -- PdfPageCollection: Add iteration on PdfPage. See PdfAnnotationCollection -- PdfPageCollection::CreatePage() with PdfPageSize or default inferred from doc -- PdfPage: Add GetFields() iteration - PdfDocument: Add GetAnnotationFields()/GetAllFields() iteration -- Fix PdfFontMetrics handling of symbol encoding +- PdfResources: Improve API +- Review PdfPage::SetICCProfile() +- PdfWriter: Check if SetEncrypt() should accept mutable reference instead +- Added PdfResources::GetResource with enum type +- PdfContents: Remove PdfContents::Reset(obj) (keep parameterless) +- PdfErrorCode: Check all values +- PdfEncrypt: Consider removing CreateFromEncrypt (shared_ptr in PdfMemDocument could be used now) +#### Features - Check PdfWriter should really update doc trailer when saving. Now the new trailer is written but the doc still has the old one +- PdfMemDocument: Check the DeviceStream is not empty before doing an incremental update/signing operation +- PdfMemDocument: Prevent Save() operation after signing operation +- PdfMemDocument: Release the device after all objects have been loaded (eg. after a full Save()) +- PdfParserObject: Release the device after loading +- Review all page import functions to check correct working/improve the code +- Review PdfPageCollection::AppendDocumentPages(), + PdfPageCollection::InsertDocumentPageAt(), PdfPage::MoveAt() +- PdfElement: Optimize, keep dictionary/array pointer. Add GetObjectPtr() - PdfImage: cache PdfColorSpace values in the dictionary after signing with SignDocument (???) - Evaluate move more utf8::next to utf8::unchecked::next - Add PdfString(string&&) and PdfName(string&&) constructors that either assume UTF-8 and/or checks for used codepoints -- Added PdfResources::GetResource with enum type - Add a PdfRect-like class PdfCorners that avoid coordinates normalization by default - PdfToggleButton: Add proper IsChecked/ExportValue handling -- Review PdfPage::SetICCProfile() -- PdfWriter: Check if SetEncrypt() should accept mutable reference instead -- PdfResources: Improve API - Add version of PdfFont::TryGetSubstituteFont for rendering (metrics/widths of loaded font override metrics found on /FontFile) - Add a fallback to search font on the system for text extraction purposes,