saveDocument method
Implementation
Future<void> saveDocument(PdfDocument doc, String outPath) async {
final buffer = StringBuffer();
buffer.writeln("%PDF-1.4");
for (var obj in doc.objects) {
buffer.writeln("${obj.number} ${obj.generation} obj");
buffer.writeln(obj.content);
buffer.writeln("endobj");
}
// Append overlays to pages
for (var page in doc.pages) {
for (var overlay in page.overlays) {
buffer.writeln(overlay.toPdfStream());
}
}
// Minimal xref (TODO: full rebuild)
buffer.writeln("trailer << /Size ${doc.objects.length + 1} >>");
buffer.writeln("startxref");
buffer.writeln("0");
buffer.writeln("%%EOF");
await File(outPath).writeAsString(buffer.toString());
}