|
|
View Full Version : Calibre: Seitenzahlen von pdf in epub/mobi entfernen
Hallo zusammen!
Ich habe (egal mit welcher Calibre-Version) das Problem, dass ich die in pdf-Büchern eingebundenen Seitenzahlen (meistens unten auf jeder Seite (mittig oder zentriert) bei der Konventierung zu epub/mobi nicht wegbekomme und sie somit mitten im eigentlichen Text landen.
Mache ich bei der Anwendung des "Zauberstabs" (oder wie Calibre das nennt) etwas falsch? Oder kann das Calibre einfach noch nicht?
Habe leider keine Ahnung von "Befehlkommandos" (die man anscheinend bei Calibre eingeben kann/soll)...
Wie werdet ihr die Seitenzahlen bei pdf-Dokumenten los?
Gruß, Zel
Manichean 08-29-2010, 01:14 PM Welchen der Zauberstäbe benutzt Du denn? Sinnvoll in diesem Kontext wäre Entfernung von Fußzeile, denke ich.
Das, was Du "Befehlskommandos" (ist das nicht ein bißchen doppeltgemoppelt?) nennst, sind regular expressions. Eine übrigens auch im Calibre-Handbuch verlinkte Einführung ist hier (http://docs.python.org/library/re.html) zu finden.
ja, ich meine den Zauberstab zur Entfernung der Fußzeile.
Vielleicht benutze ich den Zauberstab auch nur einfach falsch:
Ich mache ein Häkchen bei "Fußzeile entfernen" und das wars. Leider klappt es so nie.
Wenn ich dann noch auf den Zauberstab drücke, öffnet sich ein weiteres Fenster, wo ich dann aber nicht mehr weiß, was ich machen soll.. :(
Manichean 08-29-2010, 05:11 PM Ah. Der Ausdruck, der da steht, ist (vermutlich, ich hab den noch nicht genauer angeguckt) auf Standard-Fußzeilen ausgelegt. Das Häkchen ist schonmal richtig, in dem Fenster, das sich dann öffnet, wird Dir der Quelltext des zu konvertierenden Buches angezeigt. Oben gibst Du dann die regular expression ein, die die Fußzeile bzw. Seitenzahl im Dokument beschreibt, und mittels der Schaltfläche "Test" zeigt Calibre dann, was es tatsächlich entfernen würde. Denk dran, entsprechende umschließende Tags mit zu entfernen.
EDIT: Konkretes, vielleicht anschaulicheres Beispiel: Angenommen, die Seitenzahlangabe ist "Seite X von Y" ohne weitere Tags. Dann wäre die regular expression, die Du für die Entfernung der Fußleiste angeben mußt, "Seite [0-9]+ von Y" (da Y eine feste Zahl ist, kann das direkt übernommen werden.) Siehe ansonsten den Link in meinem obigen Post- lies Dir den am Besten mal in Ruhe durch, das sollte einiges verdeutlichen.
EDIT: Konkretes, vielleicht anschaulicheres Beispiel: Angenommen, die Seitenzahlangabe ist "Seite X von Y" ohne weitere Tags. Dann wäre die regular expression, die Du für die Entfernung der Fußleiste angeben mußt, "Seite [0-9]+ von Y" (da Y eine feste Zahl ist, kann das direkt übernommen werden.) Siehe ansonsten den Link in meinem obigen Post- lies Dir den am Besten mal in Ruhe durch, das sollte einiges verdeutlichen.
Danke für das "EDIT" - Ohne das habe ich nämlich gar nichts verstanden.. ;-)
Werde mir deinen Link noch einmal genauer anschauen und anschließend probieren es mit Calibre umzusetzen..!
katzenstreik 08-30-2010, 04:36 AM Wie werdet ihr die Seitenzahlen bei pdf-Dokumenten los?
Der alte Trick: PDF -> html mit dem MobipocketCreator (http://www.mobipocket.com/en/downloadsoft/productdetailscreator.asp), html dann mit Calibre in gewünschtes eBook-Format trimmen.
Der MobipocketCreator schafft das mit den Seitenzahlen (und Kopf- und Fußzeilen) in der Regel recht gut...
Der alte Trick: PDF -> html mit dem MobipocketCreator (http://www.mobipocket.com/en/downloadsoft/productdetailscreator.asp), html dann mit Calibre in gewünschtes eBook-Format trimmen.
Der MobipocketCreator schafft das mit den Seitenzahlen (und Kopf- und Fußzeilen) in der Regel recht gut...
Danke für den Tipp, aber soweit ich weiß, gibt es den MobipocketCreator (noch) nicht für den Mac und folglich kann ich ihn nicht verwenden.. :(
2scanner 09-04-2010, 02:21 PM Danke für eure Diskussion,
hatte das gleiche Problem wie Zel, durch den Tipp von Manichean hab ich dann kapiert. Mein Eintrag für schlichte Seitenzahlen-Entfernung:
(([0-9]+ </p>)*([10-99]+ </p>)*([100-999]+ </p>))
Vorschautyp ePub, Staffelung der Zahlen weil Calibre [1-1000] nicht rafft.
Das </p>-Tag, weil auch sonst alle anderen Zahlen im Skript gelöscht würden.
2scanner 09-04-2010, 02:36 PM Uups - P.S.:
Wenn Du erstmal "nur" das PDF hast, ist der Eintrag
(([0-9]+ <br>)*([10-99]+ <br>)*([100-999]+ <br>))
Bei mehr als tausend Seiten entsprechend erweitern ;)
Manichean 09-05-2010, 04:25 AM Hm, nach meinem Verständnis sollte eigentlich [0-9]+ <br> jede Zahlenkombination erschlagen- das + sagt "mindestens ein Auftreten der Zahlen 0-9". Die Angabe [10-99]+ würde dann so interpretiert "mindestens einmal entweder die 1, eine Zahl von 0-9 oder die 9". Kurz gesagt: Der Ausdruck in der ersten Klammer sollte reichen, wenn ich mich nicht irre.
EDIT: Anders ausgedrückt: Eine regexp "versteht" keine Zahlen sondern Zeichenketten. Mit [1-1000]+ hast Du also versucht zu sagen "mindestens einmal eine Zahl zwischen 1 und 1 oder die 0 oder die 0 oder die 0".
Leider klappt es bei mir (PDF, unten mittig die Seitenzahl (nur die Zahl, keine Striche o.ä.), ca. 650 Seiten) mit keiner der oben beschriebenen Lösungen + auch nicht mit dem vorgeschlagenen Ausdruck von Calibre.
Entweder ich mache etwas falsch (sehr gut möglich, da wirklich keine Ahnung) oder es geht einfach nicht...
Soll ich wohl den Calibre-Chef ( = Erfinder) mal persönlich fragen, ob er zu diesem Thema nicht ein Video hochladen kann? ;-)
Manichean 09-23-2010, 04:17 AM Es gibt ein Tutorial, das versucht, reguläre Ausdrücke verständlich zu erklären (http://www.mobileread.com/forums/showthread.php?p=1118190#post1118190). Die Regexpes, die da oben stehen, sind vermutlich für Dein Problem ungeeignet, weil der Code für die Seitenzahlen bei Dir einfach anders aussieht.
K-Thom 09-23-2010, 06:09 AM Die Schwierigkeit dabei ist, dass manche Seitenzahlen nicht als Fußzeilen bei der Konvertierung interpretiert werden. Das passiert sogar, wenn man aus Acrobat heraus in ein anderes Format abspeichert.
Ich rede mal jetzt in Word: Wenn du Glück hast, steht jede Seitenzahl in einer eigenen Zeile, also
^p1^p oder ^pSeite 1 von 1008^p oder Ähnliches. *^p=Zeilenumbruch
Dann lassen sie sich leicht manuell abfangen oder per Makro rauslöschen. Übelst wird es, wenn die Seitenzahlen in einer etwas anderen Formatierung in den Fließtext übergehen.
Die sicherste - aber aufwendigste - Methode ist und bleibt allerdings das manuelle Rauslöschen. Sonst kann es dir passieren, dass du solche Textstellen plötzlich automatisch mitlöscht.
"Der Countdown läuft", brüllte der Offizier durch den Raum.
10 ... 9 ... 8
Sergeant Thomlin lief der Schweiß von der Stirn
7 ... 6 ... 5
Nervosität machte sich unter den Männern breit.
oder
Hastig zählte er seine Schritte, um den Fallen zu entgehen.
17, 18, 19 ...
Hatte er richtig gezählt?
18?
Mitten in der Bewegung hielt er inne.
PDFs sind einfach eine Katastrophe, wenn's ums Konvertieren geht.
Vielen Dank @K-Thom & @Manichean für eure (erneute) Hilfe!
Die sicherste - aber aufwendigste - Methode ist und bleibt allerdings das manuelle Rauslöschen. Sonst kann es dir passieren, dass du solche Textstellen plötzlich automatisch mitlöscht.
kann ich das denn auch mit Calibre? Ich kann mir ja den Text in dem Fenster (wo ich zB die Fußzeilen entfernen können sollte..) auch ein Testfenster öffnen lassen.. kann ich dort dauerhaft die Seitenzahlen löschen oder muss ich wirklich den kompletten Text aus dem PDF kopieren (womit alle Formatierung flöten geht..) und dann die Seitenzahlen noch Manuell rauslöschen?
Da ich meinem Buch viele (wichtige) Jahreszahlen vorkommen, ist vielleicht wirklich der manuelle Weg der Beste.. :(
Manichean 09-23-2010, 10:50 AM kann ich das denn auch mit Calibre? Ich kann mir ja den Text in dem Fenster (wo ich zB die Fußzeilen entfernen können sollte..) auch ein Testfenster öffnen lassen.. kann ich dort dauerhaft die Seitenzahlen löschen oder muss ich wirklich den kompletten Text aus dem PDF kopieren (womit alle Formatierung flöten geht..) und dann die Seitenzahlen noch Manuell rauslöschen?
Nein. Aber Du kannst über den Tab "Fehlersuche" in den Konvertierungseinstellungen die HTML- Zwischenstufe der Konvertierung abgreifen, diese bearbeiten und als neues Format dem Buch wieder hinzufügen. Dann mußt Du vom HTML konvertieren und alles sollte gut sein.
Da ich meinem Buch viele (wichtige) Jahreszahlen vorkommen, ist vielleicht wirklich der manuelle Weg der Beste.. :(
Eigentlich sollte ein vernünftiger regulärer Ausdruck zwischen Seitenzahlen und Jahreszahlen anhand der umgebenden Tags differenzieren können. Kannst Du einen Abschnitt aus dem Buch posten, der eine Jahres- und eine Seitenzahl, oder geht das wegen Copyright oder so nicht? (Sonst per PM.) Dann könnte man da nämlich mehr zu sagen als diese Konjunktiv- Formulierung da oben ;)
kbaerwald 10-06-2010, 09:43 AM Manchmal ist es besser die Kopf- oder Fußzeile bereits im pdf zu entfernen. Es gibt da ein kleines Java Snippet BRISS (Suchfunktion hier im Forum), welches ein pdf "schneidet" (Crop). Funktioniert, wenn die Position der Kopf- bzw- Fußzeile im pdf immer gleich ist. Mal ausprobieren.
Manichean 10-06-2010, 05:36 PM Manchmal ist es besser die Kopf- oder Fußzeile bereits im pdf zu entfernen. Es gibt da ein kleines Java Snippet BRISS (Suchfunktion hier im Forum), welches ein pdf "schneidet" (Crop). Funktioniert, wenn die Position der Kopf- bzw- Fußzeile im pdf immer gleich ist. Mal ausprobieren.
Jetzt bin ich neugierig: Was ist daran besser, die vorher zu entfernen?
kbaerwald 10-07-2010, 02:19 AM ... bei variierenden Kopf- und Fußzeilen ist das einfacher (jedenfalls für mich) als ständig eine Regex anzupassen. Bei "Zubehör" mitten im Text sieht das natürlich anders aus. Ich verwende das Cropping häufig bei gescantem Material.
Manichean 10-07-2010, 03:45 AM ... bei variierenden Kopf- und Fußzeilen ist das einfacher (jedenfalls für mich) als ständig eine Regex anzupassen. Bei "Zubehör" mitten im Text sieht das natürlich anders aus. Ich verwende das Cropping häufig bei gescantem Material.
Nun, da ich die regulären Ausdrücke sowieso individuell für jedes Buch schreibe, wenn ich welche brauche, stellt das für ich kein Problem dar ;)
Das PDF bei mir gibt bei den Seitenanzahl es immer folgt an, z.b. für Seite eins "-1-". Was wäre da am besten?
Manichean 10-21-2010, 04:22 AM Das PDF bei mir gibt bei den Seitenanzahl es immer folgt an, z.b. für Seite eins "-1-". Was wäre da am besten?
Zwei Bemerkungen:
1. Interessant ist die Art, wie dies in der HTML- Zwischenstufe realisiert wird. In der Strukturerkennung bei den Konvertierungseinstellungen, klicke auf den Zauberstab bei Kopf-/Fußzeilenentfernung und suche in dem Code, der dann angezeigt wird, eine Seitenzahl.
2. Zur Entfernung siehe hier (http://calibre-ebook.com/user_manual/regexp.html).
bjarneee 10-23-2010, 02:57 AM Das PDF bei mir gibt bei den Seitenanzahl es immer folgt an, z.b. für Seite eins "-1-". Was wäre da am besten?
Nun das kommt darauf an wie es genau in Deiner pdf-Datei aussieht. Du findest das in der Vorschau wenn Du den regulären Ausdruck erstellst. Nehmen wir mal an wir haben soetwas:
text <br>
-28- <br>
<hr>
<A name=29></a> text
dann würde der reguläre Ausdruck so aussehen: <br>\s-\d{1,4}-\s<br>\s<hr>\s<A name=\d{1,4}></a>
setzt sich dabei wie folgt zusammen
\s kennzeinet ein Leerzeichen oder Zeilenumbruch
\d bezeichnet beliebige Dezimalzahl
\d{1,4} bezeichnet eine Zahl die bis zu vier Stellen haben kann
bjarneee
OK, vielen Dank, werde ich bei Gelegenheit probieren.
Deckert&Moor 12-12-2010, 10:39 AM Wenn in der Vorschau die Seitenzahl mit ... 28<br> ... angegeben ist
sollte der reguläre Ausdruck so aussehen:
([0-9]+[0-99]<br>)
Es funktioniert für die Seitenzahlen von 10 bis ...
Leider hab ich noch nicht heraus gefunden wie ich die Seitenzahlen bis 10 weg bekomme. Aber die paar Seitenzahlen kann man auch in der PDF entfernen.
Vielleicht hat ja jemand eine Idee wie man über die Regex auch die anderen weg bekommt :)
Manichean 12-13-2010, 02:23 AM Wenn in der Vorschau die Seitenzahl mit ... 28<br> ... angegeben ist
sollte der reguläre Ausdruck so aussehen:
([0-9]+[0-99]<br>)
Es funktioniert für die Seitenzahlen von 10 bis ...
Leider hab ich noch nicht heraus gefunden wie ich die Seitenzahlen bis 10 weg bekomme. Aber die paar Seitenzahlen kann man auch in der PDF entfernen.
Du hast zuviel im Regex angegeben. Übersetzt steht da "mindestens ein Zeichen zwischen 0 und 9 und ein Zeichen zwischen 0 und 9 oder 9 gefolgt von <br>". Das Set [0-99] ist in der Form nicht nur unsinnig- [0-9] erreicht das Gleiche- sondern auch noch überflüssig. Versuchs mal mit [0-9]+<br>
Deckert&Moor 12-13-2010, 10:23 AM Hey, danke Manichean!!! Es funktioniert wirklich super:thumbsup:
Hab mir gleich gedacht das es auch kürzer geht und ich was falsch mache.
Kenne mich mit Calibre noch nicht so gut aus und bin wohl eher durch Zufall darauf gekommen.
Nochmals :thanks:
Manichean 12-13-2010, 02:26 PM Das ist eher ein prinzipieller Fehler im regulären Ausdruck. Guck Dir nochmal genau an, was ich schrieb.
|