public PDFRenderer(string precomputed_document_fingerprint, string pdf_filename, string pdf_user_password, string pdf_owner_password)
        {
            this.pdf_filename         = pdf_filename;
            this.pdf_user_password    = pdf_user_password;
            this.pdf_owner_password   = pdf_owner_password;
            this.document_fingerprint = precomputed_document_fingerprint ?? StreamFingerprint.FromFile(this.pdf_filename);

            pdf_render_file_layer = new PDFRendererFileLayer(this.document_fingerprint, pdf_filename);
            sorax_pdf_renderer    = new SoraxPDFRenderer(pdf_filename, pdf_user_password, pdf_owner_password);
        }