Comments (5)
Bummer. otf supposed to be rather straightforward passthrough.
Try convertig the font to propper true type (ttf), and see if it solves the problem.
If you want to have an attempt at debugging, I can provide pointers.
Gal.
from pdf-writer.
This is problem at end user side.
So I would like any help I could get to try to debug this issue.
from pdf-writer.
Cool.
The relevant element that writes the glyph data for open types is CharStringType2Flattener::WriteFlattenedGlyphProgram
This method iterates the original glyph drawing commands, for the case of Open Type CFFs and writes them to the source. It pretty much passes through the elements, as PDF uses the same CFF data internally. The only thing it does is to flatten the font program, which is the same thing that everybody does.
What we expect is that there is a bug in one of the passthroughs. probably som mixup with the operators order.
The easiest way to figure out what's wrong is to create a PDF from an application that does it correctly with only one letter. Then do it with hummus.
Then compare the glyph data, and see where the instructions differ. then debug CharStringType2Flattener::WriteFlattenedGlyphProgram
and see at what point it started to deviate and try to figure out why.
You'll have to get the font definition from both PDFs. after that you can use ttx or hummus CharStringType2Tracer to get a human readable form of the glyph instructions.
To extract the fotn definition you can use hummus parsing tools. just locate the embedded font program. it will be pointed to by the font descriptor FontFile3 key.
Another option is to just go through CharStringType2Flattener::WriteFlattenedGlyphProgram
and try to figure out if it does something out of the ordinary, but without reference that works it may be difficult. but this path also require less preparation. so you can start with this...see if you can figure this out already from there, and possibly get lucky.
Gal.
from pdf-writer.
@stribor good news.
Got some time, and found and corrected the issue. you can see the commit here (the latest):
f178001
Gal.
from pdf-writer.
Perfect, thank you. I started finding some time to look into it :)
from pdf-writer.
Related Issues (20)
- Can not modify a document by creating a new form XObject and using it in one of the pages HOT 3
- [Question] - pdf to image HOT 1
- Question about attachments HOT 2
- some example projects in wiki are missing HOT 2
- Streams objects writing problem HOT 2
- Add watermark to PDF HOT 7
- Missing lib.obj file HOT 3
- Android Build Workflow HOT 3
- CIDSet encoding does not conform with ISO 19005-2:2011, ISO 19005-3:2012 (PDF/A-2b or PDF/A-3b) HOT 21
- annotations are lost with PDFDocumentCopyingContext::AppendPDFPageFromPDF HOT 3
- How to draw Bezier curves using PDF-Witer library? HOT 2
- Parse a screenplay into scene objects? HOT 2
- color emojis HOT 16
- Links are removed when documents are merged HOT 8
- Color inversion problem occurs when exporting images HOT 1
- infinite loop HOT 2
- Crash when WriteUsedFontsDefinitions HOT 17
- Publish to github releases without PDFWriterTesting HOT 4
- U3D support, 10 years later HOT 10
- `Segmentation fault (core dumped)` just for adding `PDFWriter pdfWriter` in the `h` file HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pdf-writer.