From 005cbe5754e01a4d582ad7c6b978db0b3ed5398e Mon Sep 17 00:00:00 2001 From: Eliot Jones Date: Wed, 8 Jan 2020 14:13:04 +0000 Subject: [PATCH] update readme to show builder output removes outdated information from the readme and add an image to show pdfdocumentbuilder output --- README.md | 11 ++++++----- documentation/builder-output.png | Bin 0 -> 17560 bytes 2 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 documentation/builder-output.png diff --git a/README.md b/README.md index 35544ac5..30274ee2 100644 --- a/README.md +++ b/README.md @@ -58,12 +58,17 @@ To create documents use the class ```PdfDocumentBuilder```. The Standard 14 font // Fonts must be registered with the document builder prior to use to prevent duplication. PdfDocumentBuilder.AddedFont font = builder.AddStandard14Font(Standard14Font.Helvetica); - page.AddText("Hello World!", 12, new PdfPoint(25, 520), font); + page.AddText("Hello World!", 12, new PdfPoint(25, 700), font); byte[] documentBytes = builder.Build(); File.WriteAllBytes(@"C:\git\newPdf.pdf", documentBytes); +The output is a 1 page PDF document with the text "Hello World!" in Helvetica near the top of the page: + +![Image shows a PDF document in Google Chrome's PDF viewer. The text "Hello World!" is visible](https://raw.githubusercontent.com/UglyToad/Pdf/master/documentation/builder-output.png) + + Each font must be registered with the PdfDocumentBuilder prior to use enable pages to share the font resources. Only Standard 14 fonts and TrueType fonts (.ttf) are supported. ## Usage ## @@ -290,8 +295,6 @@ PDF files may contain other files entirely embedded inside them for document ann ## Issues ## -At this stage the software is in Alpha. In order to proceed to Beta and production we need to see a wide variety of document types. - Please do file an issue if you encounter a bug. However in order for us to assist you, you **must** provide the file which causes your issue. Please host this in a publically available place. @@ -300,8 +303,6 @@ However in order for us to assist you, you **must** provide the file which cause *Why is class or property X internal?* Internal properties and classes are not stable enough for the end user yet. If you want to access them feel free to use reflection but be aware they may change or disappear between versions. -Most testing has taken place with Latin character sets. Due to the more complex way the PDF specification handles CJK (Chinese, Japanese and Korean) character sets these will probably not be handled correctly for now. Please raise an issue (or preferably a pull request) if you have problems trying to read these documents. - ## Credit ## This project wouldn't be possible without the work done by the [PDFBox](https://pdfbox.apache.org/) team and the Apache Foundation. Any bugs in the code are entirely my fault. diff --git a/documentation/builder-output.png b/documentation/builder-output.png new file mode 100644 index 0000000000000000000000000000000000000000..440fea45a26c6d966168eabc00bbd396f9cb3e21 GIT binary patch literal 17560 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 BAKw4~ literal 0 HcmV?d00001