class procedure SetDeterministicTime(FixedEpoch: Int64);
| FixedEpoch | Int64. Zeit, die PDFium melden soll, als Sekunden seit der Unix-Epoche. |
PDFium liest die Systemuhr, wenn es Erstellungs- und Änderungsdaten und andere zeitabgeleitete Werte schreibt. Zwei Läufe desselben Codes erzeugen daher zwei verschiedene Dateien, was Byte-Vergleiche in Tests und reproduzierbaren Builds zunichtemacht
Das Festsetzen der Uhr macht die Ausgabe nur noch von der Eingabe abhängig. Es ist eine Klassenmethode und gilt daher für jede TPdf-Instanz im Prozess und bleibt wirksam, bis RestoreActualTime aufgerufen wird
Sie wirkt nur, wenn das geladene PDFium-Modul den Zeit-Hook exportiert; bei einem Modul ohne ihn wird der Aufruf angenommen, aber die Uhr nicht überschrieben
TPdf.SetDeterministicTime(1700000000);
try
Pdf.SaveAs('reproducible.pdf');
finally
TPdf.RestoreActualTime;
end;