Je voudrais faire ma propre "imprimante PDF" en utilisant Ghostscript.Impression PDF Ghostscript
La plupart des solutions que je trouve sur Internet impliquent une tierce partie comme Redmon pour rediriger l'imprimante PS vers l'exécutable Gs.
Existe-t-il un moyen de faire la même chose sans un tiers (autre que Gs)?
Voici mes 2 idées:
Bypass le pilote d'impression et générer Postscript directement par le logiciel (De GDI à Postscript, en utilisant peut-être existe un contexte de périphérique personnalisé comme le contexte de l'appareil Metafile)
Créez par programmation un nouveau port local pour chaque document à convertir. Peut-être en utilisant cette technique: https://stackoverflow.com/a/1331777/99276
La première solution serait génial, mais ne peut pas trouver quoi que ce soit à ce sujet.
Et je suis efraid le second est pas efficace du tout (et détecter le moment où le document est entièrement imprimé peut être difficile)
Ils ont pensé à tout cela. L'idée derrière l'utilisation de postscript est que je n'ai pas besoin de dessiner un PDF par moi-même comme si je surchargeais un contexte de périphérique. Ensuite, l'idée derrière les ports locaux est de sortir des fichiers Postscript sur le disque sans demander l'emplacement d'un fichier comme le fait le port FILE. À la fin oui, j'ai déjà regardé le code source de Redmon. Mais si c'est la seule solution, je suppose que je vais le faire. – MiniScalope
Créer un fichier PDF à partir d'opérations de dessin Windows n'est pas plus difficile que de créer un programme PostScript à partir des mêmes opérations, croyez-moi. Certes, vous pouvez créer des ports locaux qui enregistrent dans un fichier spécifique, mais vous devez alors scanner le code pour ce nom de fichier et le traiter si vous le trouvez. C'est possible (les premières versions de la fonction 'PDF print' d'Adobe l'ont fait, tout comme d'autres implémentations). mais son (comparativement) processeur coûteux.Il est également vulnérable à la perte de données si le programme d'analyse se bloque et que l'utilisateur imprime un autre fichier. – KenS