Created attachment 48771 [details]
the source file that won't work
Text disappearing when rendering a pdf onto a cairo pdf surface
Created attachment 48772 [details]
testcase - modified version of pdf2png.c
Created attachment 48800 [details]
Version of original pdf that works fine (some letters removed)
There was a bug before that I reported, where I believe some characters weren't properly encoded in cairo and was interpreted as PS/PDF codes in the final document; i'm not quite sure about this though, as I can't find the bug report anymore... I know that my old test case works now though, so some things are fixed.
Testing your source file with your modified pdf2png and cairo 1.10.2 and poppler 0.16.4 works for me.
Please attach your output files from both PDFs.
Created attachment 48807 [details]
result of pdf2pdf on #48771
Created attachment 48808 [details]
result of pdf2pdf on the version that works (with letters removed)
I'm using poppler 0.16.6
I'm viewing the pdfs in adobe acrobat 9
The status in pdf2png is not set before it is printed. Could you add the line:
status = cairo_surface_status (surface);
after cairo_surface_finish() and see if any error is printed.
(In reply to comment #8)
> The status in pdf2png is not set before it is printed. Could you add the line:
> status = cairo_surface_status (surface);
> after cairo_surface_finish() and see if any error is printed.
No error (nothing) printed.
The CFF fallback font in your PDF is corrupt. There is a 1 byte difference between the CFF font in your PDF and the CFF font in my PDF generated from the same test case. The difference is in one element of an offset array inside the font. The array contents are identical so cairo must know the correct size of the array elements. But one number in the array of offsets that point to the contents of the array is 0 instead of 14. I have no idea what could be causing this difference. I can not see any thing in the code that could cause this.
I just noticed I was testing with current 1.10 branch instead of 1.10.2. I can reproduce the bug with 1.10.2 but not with the latest 1.10 branch. Valgrind shows what the problem is. It has already been fixed with this commit: