Bir pdf dosyasının yer imlerini nasıl içe aktarın, dışa aktarın ve düzenleyin?


21

Bir pdf dosyasının yer imlerinin, dosyanın içinde bir yerde düz metin olarak saklandığını duydum. Toplu işleme için bir pdf dosyasının yer imlerini bir metin dosyasına içe ve dışa aktarabilmenin mümkün olup olmadığını merak ediyordum.

Evet ise, pdf dosyasının yer imlerini içeren metin dosyasını düzenlemek için sözdiziminde herhangi bir açıklama var mı?

Ubuntu 10.10 ve Windows 7 için ücretsiz yazılım çözümleri umuyordum.

Teşekkürler ve saygılar!

Yanıtlar:



13

Bunun için kullanabilirsiniz pdftk. Ek bilgi: PDF Yer İmlerini İçe ve Dışa Aktarma .

PDF yer imlerini aşağıdaki gibi komut satırında dışa aktarın:

pdftk C:\Users\Sid\Desktop\doc.pdf dump_data output C:\Users\Sid\Desktop\doc_data.txt

PDF yer imlerini aşağıdaki gibi bir veri dosyasından içe aktarın:

pdftk C:\Users\Sid\Desktop\doc.pdf update_info C:\Users\Sid\Desktop\doc_data.txt output C:\Users\Sid\Desktop\updated.pdf

pdftkyer imi formatını yazmak biraz sıkıcı. Onun yerine kullanarak kendi komut dosyası oluşturulur bash, sed, pdftkve python3. Bu depoda kontrol edin: https://github.com/SiddharthPant/booky

Şimdi bkmrks.txt1000 sayfa pdf için bile yazmak sadece 5 dakika süren böyle bir metin dosyası ( ) oluşturabilirim .

{
  Title1, 1
  Title2, 2
  {
    Subtitle1, 3
    Subtitle2, 4
    {
      SubSubtitle1, 5
      ...
    }
  }
}

ve sonra betiğimi kullan

./booky.sh pdf_file.pdf bkmrks.txt

bu, yer imlerimde bulunan bir pdf ( pdf_file_new.pdf) öğesini otomatik olarak oluşturur .

Eğer Windows makinedeyseniz bu * nix sistemlerinde çalışacaktır. Ardından, ilk önce uyumlu depoya dönüştürmek için dosyayı yükleyin python3ve pdftkyalnızca booky.pydepodaki dosyayı kullanın.bkmrks.txtpdftk

python3 booky.py < bkmrks.txt > output.txt

ve sonra bir dökülmüş veri dosyası oluşturmak için export komutunu kullanın. Önceki yer işaretlerini bu dosyadan kaldırın ve output.txtyerine basit bir kopyala yapıştır kullanarak içerik ekleyin . Ve sonra bu verileri geri alın.


4

Yer imleri olan ve kopyalamak istediğiniz bir belgenin bir sürümüne sahipseniz, PDF-XChange Viewer'ı kullanmak çok daha basit bir yoldur (v2.5.211 kullandım). Yer imlerine sahip PDF'yi açın (kaynak PDF), yer imleri bölmesindeki tüm yer imlerini seçin, Ctrl + C tuşlarını kullanarak kopyalayın, yer imlerine sahip olmayan PDF'yi açın (hedef PDF) ve yapıştırın (Ctrl + V) bu PDF'nin yer imleri bölmesinde. PDF-Xchange Viewer, kaynak PDF'deki gibi yer imi özelliklerini korur (yer imi metninde kalın / italik formatlar dahil). Herhangi bir nedenden ötürü, hedef PDF'nin bazı bölümleri belgede yapılan revizyonlar nedeniyle daha düşük veya daha yüksekse, düzeltilmesi gereken yer imini tıklatabilir, yer iminin açılmasını istediğiniz sayfada, sağa yer imini tekrar tıklayın ve "Hedef Ayarla" yı tıklayın. Bu son kısmı herhangi bir rahatsız edici yer imi için gerektiği kadar tekrarlayın. Tamamlandığında hedef PDF'yi kaydedin.

Bu benim için harika çalıştı, oldukça sezgiseldi ve birkaç dakika içinde bitirdim. Özel senaryomda, bir meslektaş Mac için Word kullanarak yer imleri olmayan çok uzun bir belge hazırlamıştı. Belgenin uzunluğu nedeniyle, belgenin anahatlarına karşılık gelen yer imleri istedim. Windows için Word'ü belgeyi yer işaretleriyle birlikte PDF olarak kaydetmesini sağlayabilirim, ancak Windows için Word ile Mac için Word arasındaki bazı biçimlendirme farkları sayfa sayımını oldukça azalttı (özellikle, altbilgilerdeki beyaz boşluktaki farklılıklar ve farklılıklar vardı) şekiller ve resim yazısı arasındaki boşlukta). Sayfaları Windows için Word'de doğru sayfalamayı düzeltmek için üstbilgilerle ve altbilgilerle ve şekil boyutlarıyla oynamayı başardım, ardından PDF w / yer imlerine kaydettim. Ne yazık ki,


1
PDF-Xchange için +1. Daha az araç olan merrier
Ooker

1

PDF dosyalarının özellikleri, Adobe'den ücretsiz olarak indirilebilir bir PDF olarak kullanılabilir - veya en azından en son kontrol ettiğimde. Ancak, çoğu PDF dosyası sıkıştırılmış verilerde en sıkıştırılabilir verilere sahiptir. Muhtemelen bir zamanlar PDF'in temelde düz metin sürümü vardı ve öyleyse şimdi geçerli olacak, ancak aslında bu biçimde bir dosya almak bir sorun olabilir.

Yapmamış olmama rağmen, büyük olasılıkla bir olasılık (ödemeye razıysanız) Acrobat Pro'yu satın almak ve bu uygulamaya yerleşik Javascript komut dosyası oluşturma yeteneklerini kullanmaktır. Başlamak için ...

http://acrobatusers.com/tutorials/2008/10/auto_bookmark_creation

Bu öğretici, Acrobat 7.0 Pro'da (Creative Suite CS2'de bulunan sürüm) Javascript kullanarak otomatik olarak yer imlerinin nasıl oluşturulduğunu gösterir. Bu biraz eskimesine rağmen, aynı teknik daha yeni sürümler için iyi çalışmalıdır.

Adobe uygulamaları, Javascript (Javascript'in standart olmayan bir şey) kullanarak metin dosyalarını okumak / yazmak için bir kütüphane içerir, bu yüzden bu komut dosyalarını sağlam hale getirmek için önemsiz olsa da, kendi içe / dışa aktarma komut dosyalarınızı yazmanız mümkündür.


Teşekkürler! Acrobat Pro'nun Linux sürümü var mı?
Tim

Üzgünüm - çok şüpheliyim. AFAIK bir Mac veya Windows olayıdır ve Adobe, çok sayıda yaratıcı uzman (1) bu platformu kullanmaya başlamadıkça ve (2) FOSS kullanmak yerine tescilli yazılımlar için çok fazla para ödemeye razı olduklarını göstermediği sürece Linux'u desteklemeyebilir. alternatifler. Olası görünmüyor. Ücretsiz bir çözüm olarak, blog.rubypdf.com/2007/12/12/… (Ruby için) gibi bir kütüphane deneyebilirsiniz . Bunun hakkında daha az şey biliyorum - Google’da buldum.
Steve314

1

Yer imlerini dışa aktarmak için, Microsoft OneNote'un kullanılmasını gerektiren farklı bir yaklaşım izliyorum:

PDF okuyucuyu (Foxit'in ücretsiz sürümünü kullanıyorum) yer imi yapısı görünür halde açıyorum ve sonra OneNote'ta anlık görüntü almak istiyorum ve Foxit yer imi yapısını seçiyorum.

OneNote'a döndüğümde, "Resimdeki metni kopyala" seçeneğini seçiyorum (anlık görüntüyü sağ tıkladıktan sonra görünen menüde) ve girintiyi düzeltmek için (genellikle mermilerle) yana yapıştırıyorum.


1

HandyOutline. 1 sürükle, 1 tık, tamam. https://sourceforge.net/projects/handyoutlinerfo/ . Ücretsiz. Alt imleri girintiler. Herhangi bir PDF okuyucu / editör gerektirmez. Ayrıca, tüm ayrıntıları metne dışa aktarın (kelimeye kopyalayın, tamamen işlevsel bir sözcük belgesine dönüştürmek için bir makro yazın) veya XML, yeniden düzenleyin, PDF'ye içe aktarın. Dev bağışları hak ediyor.

PDF-Xchange Editör (değiştirilen PDFViewer) metne dışa aktarılan rastgele çoğaltılmış / cevapsız yer imleri

JPDF, Java’yı biçimlendirdi, çöp attı, yalnızca adları almak için temizleyemedi

PDFtk bana sadece talimatlara bakarak başımı ağrıttı

:-)


Bunun daha kendine özgü bir format yerine XML'e dışa aktarılmasını seviyorum. Dışa aktarma için sürükle ve bırak arayüzü de daha kolay olamazdı. Keşke bir kerede birden fazla yapabilseydi.
Evan Donovan

0

PDF'de yer imlerinin tümünü başka bir yerde kullanmak için bir metin olarak kopyalamak için bir başka "aptal" çözüm buldum. Acrobat Pro'da (Mac OS için), tüm yer imlerini seçmenin ve bunları bir Word işlemciye kopyala / yapıştırmanın yolu yoktur. Bununla birlikte, tüm PDF'yi "bir tek HTML sayfası + yer imlerine göre gezinti çerçevesi ekle" seçeneğiyle bir HTML dosyası olarak dışa aktarabilirsiniz. Ardından HTML'yi bir tarayıcıda açın, gezinti çerçevesindeki tüm metni seçin ve bir Word işlemciye kopyalayın / yapıştırın ...


0

Tüm yer imlerini PDF'den bir metin dosyasına okumak için bu komutu aşağıdakilerle kullanabilirsiniz pdftk:

pdftk input.pdf dump_data output output.txt

Daha sonra fazla parçaları kaldırmak için Notepad ++ üzerinde regex kullandım. Aşağıda boş bir dize ile değiştirildim (sırayla) ve sonra bir yer imleri listesi ile bitirdim (metin editörünüzde regex kullanarak değiştirmeyi unutmayın):

BookmarkLevel.*
BookmarkPageNumber.*
BookmarkBegin.*
\n\s+\n

Numaraları silmek istiyorsanız, şu ifadeyi değiştirin:

BookmarkTitle: A8.\d.\d+\s
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.