} // proc CheckPageNumber /// <summary>Open a page of the pdf-document</summary> /// <param name="pageNumber">Page number, zero indexed.</param> /// <returns>Page object.</returns> public PdfPage OpenPage(int pageNumber) { CheckPageNumber(pageNumber); lock (FPDF_LibraryLock) return(new PdfPage(this, FPDF_LoadPage(documentHandle.DangerousGetHandle(), pageNumber), pageNumber)); } // func OpenPage
private PdfReader(PdfDocumentHandle documentHandle, string pdfName, IDisposable dispose) { this.documentHandle = documentHandle ?? throw new ArgumentNullException(nameof(documentHandle)); this.pdfName = pdfName ?? "unknown.pdf"; this.dispose = dispose; Properties = new PdfProperties(this); // read pdf version if (!FPDF_GetFileVersion(documentHandle.DangerousGetHandle(), out var tmp)) { throw PdfReaderException.Create(pdfName); } pdfVersion = new Version(tmp / 10, tmp % 10); // read page count pageCount = FPDF_GetPageCount(documentHandle.DangerousGetHandle()); if (pageCount < 0) { throw PdfReaderException.Create(pdfName); } } // ctor