En tant que méthode (2 en 1, 4 en 1, ... en 1) pour combiner plusieurs pages de PDF en une seule page, par exemple, "Aperçu" de macOS ** "Fichier" -> "Imprimer ..." -> Sélectionnez le nombre de pages / feuille dans l'onglet "Mise en page" -> "Enregistrer en PDF" ** La méthode peut être mentionnée. Cependant, je n'ai pas trouvé de moyen d'éviter l'écart entre les pages qui ont été assemblées avec cette méthode.
Les première et deuxième pages sont respectivement
Si vous essayez de monter un fichier PDF contenant des éléments jusqu'au bord de la page comme indiqué ci-dessus,
On peut voir que la marge est définie comme indiqué dans, et il y a un espace entre les pages. l C'est un peu décevant pour la sortie à des fins telles que ** vouloir diviser une grande feuille de papier et combiner les fichiers PDF numérisés en une seule page **. Je pense qu'il existe un moyen de convertir une fois au format Postscript
et d'utiliser l'ancien psnup
, mais je pense que cela peut être gênant en raison des caractères multi-octets, des polices et de la conversion de format, alors gérez le PDF. J'ai décidé d'écrire un script de conversion dans un langage de script récent où une bibliothèque est susceptible d'exister.
Après quelques recherches, il semble qu'il existe une bibliothèque appelée PyPDF2 pour Python
, j'ai donc décidé de l'implémenter avec Python
. Comme spécification, les principales choses qui peuvent être modifiées dans l'onglet de mise en page du menu d'impression de macOS
peuvent être sélectionnées comme options de ligne de commande.
L'emplacement du fichier est le suivant.
Un exemple de regroupement de pages en 2 lignes et 3 colonnes.
% ./pdf_merge_multipages.py -o merge_test.pdf -c 3 -l 2 test_samples/input_landsc
ape_1.pdf test_samples/input_portleit_1.pdf
--Python: confirmé avec 2.7
usage: pdf_merge_multipages.py [-h] [-output filename] [-columns n_h] [-lines n_v] [-page-order opt]
[-rotation opt] [-valign opt] [-align opt] [-metainfo opt] [-title text]
input-file [input-file ...]
Merge multiple mages in PDF files w/o gap.
positional arguments:
input-file Input PDF file(s)
optional arguments:
-h, --help show this help message and exit
-output filename Output file
-columns n_h # of columns of merged pages (default = 2)
-lines n_v # of lines of merged pages (default = 1)
-page-order opt Page order (choices=left2right[default], left2bottom, right2left, right2bottom)
-rotation opt Page orientation (choices=none[default], flip, right, left, auto, rauto)
-valign opt Page fitting (choices=resize, none[default], top, bottom, center, fit)
-align opt Page fitting (choices=resize, none[default], right, left, center, fit)
-metainfo opt Meta data for marged file (choices=full[default], none, partial, short)
-title text set title in meta data for marged file (Default: output file name)
---output filename
: Le nom du fichier de sortie. S'il n'est pas spécifié, la valeur par défaut est ʻa.out.pdf --
-colonnes nh,
-lines n_v: Spécification de mise en page: Placez la page du fichier PDF d'entrée dans n_h colonnes horizontales x n_v lignes verticales. Si non spécifié, la valeur par défaut est 2x1 ("2up") --
-option-ordre des pages: Spécifiez l'ordre dans lequel les pages sont disposées. --
left2right: place la première page du fichier d'entrée en haut à gauche. Les pages qui suivent le fichier d'entrée sont disposées séquentiellement vers la droite, et lorsqu'elles atteignent l'extrémité droite, elles sont disposées séquentiellement à partir de l'extrémité gauche de la colonne directement en dessous ou du coin supérieur gauche à droite de la page suivante. (Défaut) --
left2bottom: Placez la première page du fichier d'entrée en haut à gauche. Les pages qui suivent le fichier d'entrée sont disposées dans l'ordre du bas, et lorsqu'elles atteignent le bas, elles sont disposées du haut de la colonne vers la droite ou du haut à gauche vers le bas de la page suivante. --
left2top: Placez la première page du fichier d'entrée en bas à gauche. Les pages qui suivent le fichier d'entrée sont disposées dans l'ordre du haut, et lorsqu'elles atteignent le haut, elles sont placées du bas de la colonne vers la droite ou du bas à gauche vers le haut de la page suivante. --
right2left: place la première page du fichier d'entrée en haut à droite. Les pages qui suivent le fichier d'entrée sont disposées séquentiellement sur la gauche, et lorsqu'elles atteignent l'extrémité gauche, elles sont disposées séquentiellement à partir de l'extrémité droite de la colonne directement en dessous ou du coin supérieur droit vers la gauche de la page suivante. --
right2bottom: place la première page du fichier d'entrée en haut à droite. Les pages qui suivent le fichier d'entrée sont organisées dans l'ordre du bas, et lorsqu'elles atteignent le bas, elles sont disposées du haut de la colonne vers la gauche ou du haut à droite vers le bas de la page suivante. --
right2top: place la première page du fichier d'entrée en bas à droite. Les pages qui suivent le fichier d'entrée sont classées dans l'ordre du haut, et lorsqu'elles atteignent le haut, elles sont placées du bas de la colonne vers la gauche ou du bas à droite vers le haut de la page suivante. --
-option de rotation: Rotation de la page --
aucun: ne pas faire pivoter chaque page du fichier d'entrée à placer. (Défaut) --
flip: Retourner chaque page du fichier d'entrée à placer à l'envers. --
right: fait pivoter chaque page du fichier d'entrée placé de 90 degrés vers la droite. --
gauche: fait pivoter chaque page du fichier d'entrée placé de 90 degrés vers la gauche. --ʻAuto
: Si chaque page du fichier d'entrée placée en haut de la page de sortie est placée verticalement (horizontalement), chaque page de l'autre fichier d'entrée placé sur la même page du fichier de sortie est placée horizontalement (verticalement) ), Faites-le pivoter de 90 degrés vers la gauche, sinon il ne tournera pas.
-- rauto
: Si la page du fichier d'entrée placée en haut de la page de sortie est placée verticalement (horizontalement), chaque page de l'autre fichier d'entrée placé sur la même page du fichier de sortie est placée horizontalement (verticalement). Dans le cas de, faites-le pivoter de 90 degrés vers la droite, et sinon, placez-le sans le faire tourner.
---valign opttion
: Spécifiez l'ajustement de la position verticale de la page à placer
--aucun
, bas
: alignement en bas (par défaut)
--center
: alignement central haut et bas
--top
: alignement supérieur
--resize
: Redimensionner pour s'adapter à la taille verticale de la page du fichier d'entrée placé en haut de la page de sortie. S'il est spécifié en même temps que -algin resize
ou -algin fit
, le taux de réduction peut être plus petit, mais l'intervalle de mise en page est toujours le fichier d'entrée placé en haut de la page de sortie. C'est la taille verticale de la page.
--fit
: rétrécit pour s'adapter à la taille verticale de la page du fichier d'entrée placé en haut de la page de sortie. S'il est spécifié en même temps que -algin resize
ou -algin fit
, le taux de réduction sera plus petit et l'intervalle de mise en page sera plus petit que la taille verticale de la page du fichier d'entrée placé en haut de la page de sortie. Quelquefois.
---align opttion
: Spécifier le réglage de la position horizontale de la page à placer
--aucun
, gauche
: justifié à droite (par défaut)
--center
: alignement central gauche et droit
-- right
: justifié à droite
--resize
: Redimensionne pour s'adapter à la taille horizontale de la page du fichier d'entrée placée en haut de la page de sortie. S'il est spécifié en même temps que -valgin resize
ou -valgin fit
, le taux de réduction peut être plus petit, mais l'intervalle de mise en page est toujours le fichier d'entrée placé en haut de la page de sortie. C'est la taille horizontale de la page.
--fit
: rétrécit pour s'adapter à la taille horizontale de la page du fichier d'entrée placé en haut de la page de sortie. S'il est spécifié en même temps que -valgin resize
ou -valgin fit
, le taux de réduction sera plus petit et l'intervalle de mise en page sera plus petit que la taille horizontale de la page du fichier d'entrée placé en haut de la page de sortie. Quelquefois.
---metainfo options
: Spécification des méta-informations dans le fichier de sortie
--full
: Généré en ajoutant les méta-informations du fichier d'entrée à la version combinée. (Défaut)
--partial
: Généré en ajoutant à une partie des méta-informations combinées du fichier d'entrée
--Seulement short
: '/ Title', '/ Creater', '/ Producer' sont générés
--aucun
: ne génère pas de méta-informations pour le fichier de sortie (la valeur par défaut de PyPDF2 est spécifiée).
---title text
: Spécifiez le titre des méta-informations du fichier d'entrée. (La valeur par défaut est le nom du fichier de sortie)
Recommended Posts