Chrome: comment imprimer PDF avec la taille d'origine (100%, Pas de mise à l'échelle / rétrécissement)
Aujourd'hui j'ai rencontré un bug étrange dans le comportement d'impression de Chrome. Lorsque j'essaie d'imprimer un PDF créé dynamiquement à L'aide de Chrome (aussi dans Firefox), chaque image dans le PDF devient un peu plus petit (8mm). Cela ne se produit pas non plus dans la boîte de dialogue Adobe Reader/Acrobat/MacOSX.
Laissez-moi vous expliquer plus sur mon code pour l'instant:
PDF dynamique:
j'utilise prawn
pour créer dynamiquement un format pdf A4 (format paysage) en utilisant ce code:
require 'prawn'
require "prawn/measurement_extensions"
class CustomPdf < Prawn::Document
def initialize(label) # A4
super({
:page_size => "A4",
:page_layout => :landscape,
:margin => 0,
:print_scaling => :none})
image "my_image.png", :width => 213.mm, :at => [3.mm, 3.mm]
end
end
image imbriquée dans le PDF:
L'Image imbriquée dans le PDF a une taille de213mm x 70mm
avec
300 DPI
. En Pixel: 2515x827.
je crée L'Image en utilisant RMagick mais la taille, dpi et tout semble aller bien jusqu'à présent. Il n'y a donc pas d'autre explication pour le moment.
résultat Attendu:
le PDF imprimé affichera une image avec une largeur de 213cm.
résultat:
le le PDF imprimé affichera une image avec une largeur de 205mm.
Ce que j'ai essayé jusqu'à présent
prawn page_size
à quelque chose de plus bas que A4 (puisque l'Image n'est pas plus grande que A4 aussi bien...).- Jouer
print_scaling
(il y a 3 modes,:none
,:AppDefault
,:something_except_the_other_ones
(Lire plus à ce sujet ici) - donner à l'image une hauteur fixe (70mm)
- Jouer avec les différents paramètres fournis par le
Chrome Printer Dialog
- testé sous Windows Chrome (il est 213mm là, bizarre), peut-être est-il lié à MacOSX Chrome?
- testé sous IE11 (205mm) malheureusement.
ni l'un ni l'autre n'a rien fait. J'ai regardé à travers les Bugreporters de Chrome et j'ai trouvé 2 personnes qui pourraient partager le même problème que moi faire:
- https://code.google.com/p/chromium/issues/detail?id=97972
- https://code.google.com/p/chromium/issues/detail?id=67091
Le dernier a été touché 2013, mais personne n'a dit quoi que ce soit qui a fonctionné pour mon cas.
Exemples
voici un exemple d'image 300 DPI dont la largeur est de 2515 px: Si Imgur les changements de la résolution à 72, vous pouvez tirer l'image d'exemple du dépôt (lien: https://github.com/posixpascal/chrome-printing-bug/blob/master/example.png)
voici un exemple PDF
Lien Direct: Lien Direct
Github PDF Viewer: https://github.com/posixpascal/chrome-printing-bug/blob/master/output.pdf
Github Dépôt avec Exemple Image & PDF générateur script https://github.com/posixpascal/chrome-printing-bug
malheureusement je ne peux pas changer la largeur de l'image (même pas un pixel). Quelqu'un à rencontré le même problème?
des idées? C'est un puzzle intéressant, je suppose... : x
quand j'imprime une image ou un site Web avec Chrome il y a une option "Utiliser la taille originale" ou "100% Taille" que je n'ai pas quand l'impression du fichier PDF.
j'ai aussi essayé de faire une page Web au lieu d'un PDF et de définir la largeur de l'image à 213mm
qui n'a pas fonctionné non plus...
2 réponses
Voici les résultats de mes tests à partir de ce que j'ai vu en utilisant un système windows et un Mac ( Yosemite )
Windows:
Imprimé le PDF dans Chome : Parfait - 213 mm
Printed in IE : Perfect-213 mm. C'était moins avant ( autour de 205-210ish ). Donc modifié les paramètres d'impression par défaut :
sélectionnez L'option D'impression - > dialogue D'impression utilisé - > sélectionnez l'imprimante - > Préférences D'impression - > avancé - > Taille du papier - > changement d'échelle à la main -> testé A4, A5 et ainsi de suite.-> A5 ( pour une raison qui m'a donné 213 )
alors je suis passé au Mac.
Mac Findings:
changé le format du papier et testé le même: le format était de 213 mm.
Cela a été fait comme ceci : Apple Print
donc naturellement, j'ai testé l'impression directement via Chrome au lieu d'ouvrir le PDF via OSX -> imprimé à 205 mm.
Testé avec printscaling sur les crevettes au :appdefault -> Imprimé à 213 mm.
testé le même sur Firefox - > inférieur à 205-210 mm.
donc je ne sais pas vraiment si c'est un problème de Chrome parce qu'il agit bizarrement sur Firefox pour moi.
donc finalement, ce sont mes conclusions après avoir testé le code de mon côté.
j'ai connu un retrait similaire de 8 mm en utilisant Chrome sur Windows. J'ai vérifié toutes les propriétés et les paramètres de mon imprimante et je n'ai pas trouvé ce qui pouvait le faire. Il s'avère que j'avais l'option "fit to page" cochée dans L'écran Chrome printing (ctrl+p). Non-coché et réimprimé une page, a comparé leurs largeurs et ils ont été 8 mm hors. Parfois, ce sont les choses simples...