Mon système d'exploitation est Ubuntu 12.04. Comment puis-je convertir un fichier pdf de l'échelle de gris en noir-blanc? Le fichier pdf d'échelle de gris provient de la numérisation avec l'option d'échelle de gris, et le pdf d'échelle noir et blanc est requis par l'OCR.
Mettre à jour:
Suite à la réponse de Marco, le pdf BW n'est pas bon et le fichier d'origine est ici .
command-line
pdf
Tim
la source
la source
scantailor
scantailor
a des tonnes d'autres fonctionnalités utiles quand il s'agit de préparer des numérisations pour l'OCR, et c'est la seule raison pour laquelle je l'ai suggéré (comme un commentaire, pas une réponse)pdfimages
(poppler) pour extraire les images numérisées de son conteneur PDF. Peut être plus efficace pour les gérer avec ImageMagick en premier lieu.Réponses:
1) Utilisez ghostscript pour convertir le PDF en un fichier PostScript monochrome à l'aide du périphérique psmono :
2) Puis reconvertissez le PostScript monochrome en PDF:
EDIT: l'
psmono
appareil crée une image en demi-teinte 1 bit qui n'est apparemment pas ce que vous voulez. Je ne pouvais pas trouver un moyen de spécifier un seuil en utilisant ghostscript, alors j'ai eu recours à imagemagick.convert
utilise en interne ghostscript pour convertir le PDF. Il applique ensuite le filtrage de seuil pour produire une image 1 bit et utilise à nouveau ghostscript pour créer un PDF. Commeconvert
utilise une résolution de 75 DPI par défaut, qui peut ne pas correspondre à votre résolution réelle, vous pouvez fournir l'density
argument. Et expérimentez lethreshold
réglage. Les valeurs optimales dépendent fortement du fichier d'entrée.la source
Le meilleur moyen que j'ai trouvé là-bas, sans perte de qualité, supprime les ombres, le bruit, le texte de la page suivante, etc.:
1) Convertissez d'abord le pdf en images individuelles
2) Supprimez ensuite les ombres, le bruit, le texte de la page suivante qui saigne (crédits à ce blog )
cela pourrait être ajouté en tant qu'étape supplémentaire ou à la place de la commande ci-dessus pour obtenir en fait seulement deux couleurs:
3) Ceci pour créer un fichier pdf à partir de chaque image jpg sans perte de résolution ou de qualité:
4) Ceci pour concaténer les pages pdf en une seule:
5) Et enfin, j'ajoute un calque de texte OCRed qui ne change pas la qualité de la numérisation dans les fichiers PDF afin qu'ils puissent être recherchés:
la source
J'avais également des fichiers PDF couleur numérisés et des fichiers PDF en niveaux de gris que je voulais convertir en bw. J'ai essayé d'utiliser
gs
avec le code répertorié ici , et la qualité d'image est bonne avec du texte pdf toujours là. Cependant, ce code gs se convertit uniquement en niveaux de gris (comme demandé dans la question) et a toujours une grande taille de fichier.convert
donne de très mauvais résultats lorsqu'il est utilisé directement.Je voulais des pdfs bw avec une bonne qualité d'image et une petite taille de fichier. Ma solution utilise
gs
pour extraire les fichiers bmp en niveaux de gris du pdf,convert
pour seuiller ces bmps pour bw et les enregistrer en tant que fichiers tiff, puis img2pdf pour compresser les images tiff et les fusionner toutes dans un pdf.J'ai essayé d'aller directement au tiff depuis le pdf mais la qualité n'est pas la même donc j'enregistre chaque page en bmp. Pour un fichier pdf d'une page,
convert
fait un excellent travail de bmp en pdf. Exemple:Pour plusieurs pages,
gs
peut fusionner plusieurs fichiers pdf en un seul, maisimg2pdf
donne une taille de fichier plus petite que gs. Les fichiers tiff doivent être décompressés en entrée dans img2pdf. Gardez à l'esprit que pour un grand nombre de pages, les fichiers bmp et tiff intermédiaires ont tendance à être de grande taille.pdftk
oujoinpdf
serait mieux s'ils peuvent fusionner des fichiers pdf compressés à partir deconvert
.J'imagine qu'il existe une solution plus élégante. Cependant, ma méthode produit des résultats avec une très bonne qualité d'image et une taille de fichier beaucoup plus petite. Pour récupérer le texte dans le pdf bw, réexécutez l'OCR.
Mon script shell utilise gs, convert et img2pdf. Modifiez les paramètres (nombre de pages, numérisation dpi, seuil%, etc.) répertoriés au début si nécessaire, puis exécutez
chmod +x ./pdf2bw.sh
. Voici le script complet (pdf2bw.sh):la source
En fait, si cela provient d'une numérisation, la seule façon raisonnable est d'utiliser pdfimages et de convertir les graphiques sous-jacents. J'ai utilisé ce script pour le convertir:
la source
Merci à OccamsRazor pour son script, qui fait un excellent travail de conversion des PDF en couleur et en niveaux de gris en une version monochrome compacte et lisible. C'est vraiment un commentaire sur le post d'OccamsRazor, mais je n'ai pas assez de points pour commenter.
Le script échouera
img2pdf -o ./$output_pdf_name --dpi $dpi_res $input_files
car il--dpi
n'est plus un argument accepté pour img2pdf. Au lieu de cela, il obtient la résolution du fichier d'entrée, vous pouvez donc simplement le laisser de côté.Voici ma version du script. Je ne voulais pas modifier le script pour chaque fichier, donc je passe le nombre de pages et saisis le nom du fichier lorsque je l'exécute. Je l'ensemble du nom de sortie et jeu de résolution à 200 ppp, ce qui fonctionne pour mon flux de travail, mais vous voudrez peut - être changer, ou de les transformer en et et les passer.
00input_name
$3
$4
Pour exécuter, l' utilisation , par exemple, .
./pdf2bw.sh <number_of_pages> <input_name>
./pdf2bw.sh 55 input.pdf
la source
"./$input_pdf_name"
et mêmeseq 1 "$num_pages"
. En outre, vous voudrez peut-être changer`…`
pour$(…)
- voir ceci , ceci et ceci .