PDF saydamlığını düzleştirme


11

Inkscape ile yapılmış, şeffaf renkler kullanan bir PDF dosyam var. Bu görüntü bir LaTeX belgesinde kullanılacaktır.

Saydamlığı korumak düzenleme için güzel olsa da, yazdırma için bir sorun olabilir. Yazdırma genellikle PDF'den PS'ye dönüştürme işlemini içerir. Postscript saydamlığı desteklemediğinden,

  • düzleştirme, yani saydamlık olmadan çalışan bir vektör grafiği oluşturma

veya

  • tarama, yani bir bitmap görüntüsü oluşturma.

Böyle bir şekil içeren bir PDF belgesi Evince (veya Kahire veya Ghostscript) kullanılarak yazdırıldığında (veya PS'ye dönüştürüldüğünde), tüm sayfa bir bitmap olarak işlenir ve yazı tiplerini çirkin hale getirir (diğer sayfalardan farklı). (Adobe Acrobat bu tür PDF'leri iyi işler.)

Ne yazık ki, PDF rakamlarını EPS'ye dönüştürmek (LaTeX ile eklemeden önce) çok yardımcı olmuyor, çünkü hem pdftops hem de pdf2ps (yine Kahire veya Ghostscript) görüntüyü rasterleştiriyor, yani bir bitmap oluşturuyor (EPS olarak kaydediliyor). (Bu biraz daha iyidir, çünkü tüm sayfayı etkilemez, ancak yine de vektör grafiklerini tercih ederim.)

Linux'ta Inkscape veya diğer yazılımlarla saydamlığı nasıl düzleştirebilirim?


2
İlginç soru. Svg'yi düzleştirmek çok karmaşık olurdu, çünkü şekillerin olası her kesişiminin kompozit dolgu ile yeni bir opak şekil oluşturması gerekir.
artfulrobot

@artfulrobot Kesinlikle. Elde edilen vektör grafikleri genel olarak oldukça karmaşık hale gelebilir. Bununla birlikte, bir dizi tipik vektör çizim grafiği için, sonuç yine de modern bir Postscript yazıcıda iyi çalışmalıdır.
Ocak

Bulduğum en iyi yöntem, ilk adımdan sonra yeniden çizmeyi içeren sıkıcı bir manuel yöntemdir: pdf'nizi bir svg'ye dönüştürmek için inkscape'i kullanın, svg'yi iyi bir metin düzenleyicide açın. Tüm 'opaklık: [0] [0-9 \.]' Oluşumlarını 'opaklık: 1' (normal ifade sürümü) ile değiştirin veya 'opaklık: 0' bulun. ve manuel olarak opaklık 1 (sıkıcı sürüm) ile değiştirin. SVG'yi inkscape ile açın ve pdf'ye ve eps'ye geri dönmektense tekrar güzel görünmesini sağlayın (zor kısım).
Chris H

Yanıtlar:


6

Kötü rasterleştirmenin bir yolu, PDF belgenizi manuel olarak postscript'e dönüştürmektir, çünkü CUPS'yi evince veya herhangi bir gui yoluyla çağırdığınızda, yine de dönüştürülür.

pdftops -r 1200 document.pdfÇözünürlüğü 300 varsayılan değerinin altından artırmayı ve sonra elde edilen postscript'i yazdırmayı deneyebilirsiniz . Ancak, yazıcılar çalışırken bu önemli bir gelişme sağlamamıştır. Saydam görüntüler içeren ve içermeyen sayfalardaki normal metinler hâlâ farklı görünüyordu - bulanık ve net.

Böylece lateks belgemde kullanılan saydam görüntüleri düzleştirmek için Acrobat Professional'ı (bir windows makinesinde) kullandım ve bu da en iyi sonuçları verdi. Kontrol Transparency Flattener Presetolan [High Resolution]gelişmiş baskı kurulumunda. Meslektaşım, bir pdf dosyasını doğrudan modern bir laserjet ağ yazıcısına FTP yoluyla gönderebileceğini ve postscript dönüşümünü atlayabileceğini belirtti. Bunu denemedim.

Bu sorun için yalnızca linux çözümüne sahip olmak harika olurdu.


1

Aynı sorun vardı ve bu benim çözüm (gelecekteki referans için):

Bir çok şey denedim ve internette bulduğum en iyi çalışma çözümü PDF'yi tamamen bir görüntü olarak oluşturmaktı pdf2psve ps2pdf13sonuç benim için tatmin edici değildi, çünkü tüm vektör şekilleri kayboldu. Sadece kritik parçaları oluşturmak istedim ama vektör grafiklerini korudum.

Benim için önemli olan şey, tüm kritik parçaları inkscape içinde izole etmek ve ayrı bir katmana koymaktı (resimlerimde tüm gölgelerdi). Yalnızca bu katmanı (ve arka plan katmanını) görünür hale getirdim ve PNG'ye dışa aktardım, tüm saydamlık efektlerini etkili bir şekilde oluşturdular, ancak sadece onları. Geri aldım ve yeni bir katmanda kullandım. Tüm katman görünürlüklerini (saydamlık katmanı: kapalı, diğerleri: açık) çevirdikten sonra, dışa aktarılan PDF LaTeX ile mükemmel bir şekilde çalıştı ve tüm sayfayı resim olarak görüntülemeden yazdırılabilir.

TL; DR:

  1. Tüm sorunlu asetatları tek bir katmana ayırın (saydamlık maskeleri, gölgeler vb.)
  2. Yalnızca sorunlu katmanı ve arka planı görünür yapma
  3. PNG'ye dışa aktar
  4. Yeni oluşturulan PNG'yi içe aktarın ve arka plan olarak kullanın
  5. Sorunlu katman dışındaki tüm katmanları görünür yapma
  6. PDF'ye dışa aktar
  7. Gülümsemek :)

0

Bunun bir yolu, Inkscape'te beyaz bir kutuyu sayfanızla aynı boyutta yapmak ve alt katmana göndermektir. Bu, resminizi şeffaf yerine beyaz bir arka planla dışa aktarır.


1
Sorun şeffaf bir arka plan değildir ve beyaz bir arka plan eklemek bunu çözmez. Görüntü sorusu, diğer (opak) şekillerin üstünde yarı saydam şekiller kullanır. SVG ve PDF bunu destekliyor, ancak PS desteklemiyor.
Ocak

0

Ubuntu / Gimp kullanarak pdf dosyasını açtım ve her seferinde baskı önizlemesini kontrol ederek her seferinde bir sayfa yazdırdım.


-1
pdftops -origpagesizes input.pdf output.ps

sonra

ps2pdf -r600x600 output.ps input-new.pdf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.