Am 26.04.2012 11:53, schrieb Brian Potkin:
"Print to File" doesn't use cups. It produces a pdf file with embedded
fonts dictated by the application.
Oh, interesting, I didn't even know.
The result is the same as I described in my first post - an output
file which is empty. Substituting the Generic-PostScript PPD file
from foomatic for the Generic-PDF one (first deleting the test print
queue) makes no difference.
I have reproduced your steps and... ended up with an actual file in
/tmp/printout which has the LiberationMono font embedded:
$ ls -l /tmp/printout
-rw------- 1 root root 49741 Apr 26 13:02 /tmp/printout
$ sudo pdffonts /tmp/printout
name type emb sub uni object ID
--------------------------- ----------------- --- --- --- ---------
MGMUUY+LiberationMono CID TrueType yes yes no 8 0
Apologies for the delay in replying but testing a few times took a little
while. My understanding of font behaviour is rudimentary so I'm not very
sure what is going on here. Please let me know if there is anything else
I can do to help.
Could you please get the sources for cups-filters ("sudo apt-get
build-dep cups-filters; apt-get source cups-filters"), apply the
attached patch ("quilt import /path/to/patch; quilt push") , rebuild
the package ("debuild -us -uc") and then install the resulting
cups-filters package ("sudo dpkg -i ../cups-filters_1.0.16-2_i386.deb")?
Then please try again and tell us the lines in /var/log/cups/error_log
that contain "###".
- Fabian
--- cups-filters-1.0.16.orig/filter/texttopdf.c
+++ cups-filters-1.0.16/filter/texttopdf.c
@@ -75,6 +75,9 @@ EMB_PARAMS *font_load(const char *font)
FcPatternGetString (candidates->fonts[i], FC_FONTFORMAT, 0, &fontformat);
FcPatternGetInteger (candidates->fonts[i], FC_SPACING, 0, &spacing);
+ fprintf(stderr,"### Candidate: %s\n",
+ FcPatternFormat (candidates->fonts[i], (const FcChar8 *)"%{file|cescape}:%{fontformat}:%{spacing}"));
+
if ( (fontformat)&&(spacing == FC_MONO) ) {
if (strcmp((const char *)fontformat, "TrueType") == 0) {
fontname = FcPatternFormat (candidates->fonts[i], (const FcChar8 *)"%{file|cescape}/%{index}");
@@ -86,6 +89,9 @@ EMB_PARAMS *font_load(const char *font)
}
}
FcFontSetDestroy (candidates);
+
+ if (fontname)
+ fprintf(stderr,"### Chosen: %s\n", fontname);
}
if (!fontname) {