staging.inyokaproject.org

bscand patchen

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Da der "alte" Thread sich ja eigentlich auf inotify bezogen hatte, und daher der Titel eher missverständlich ist, hier ein "neuer"...

Ich versuche gerade, bscand beizubringen, wie es direkt Dateien in meinem "Lieblings-Format" DJVU erstellen und mit einer Textlage versehen kann. Der erste Versuch schien auch zu funktionieren (siehe batch im Anhang, baut auf seahawk1986s batch auf), allerdings musste ich feststellen: nur für einseitige .tiffs. Leider ist didjvu nicht in der Lage, mehrseitige tiffs oder pdfs zu verarbeiten.

Weiterprobiert habe ich dann noch mit pdf2djvu, damit kann ich intern erstellten mehrseitige PFS zwar nach DJVU überführen, Texterstellung funktioniert dann allerdings nur mit in lineart erstellten Dateien, liegt wohl daran, das pdf2djvu keine "richtige Seitensegmentierung durchführen kann...

Lösungsansatz wäre, die .tiff-Datei wieder zu splitten, die Seiten einzeln in djvu umzuwandeln, die dann wieder zusammenzusetzen, und dann mit ocrodjvu "vertexten". Anderer Ansatz: gleich die erstellten mit der Erstell/Anhängeroutine gebauten .tiffs zu djvu konvertieren, allerdings wäre dann wohl die PDF-Erstellung nicht mehr so ohne weiteres möglich.

Wie könnte ich eine Routine einbauen, die die tiff-Datei zerlegt, (z.B. mit imagemagick möglich), in einer Schleife alle tiffs aus einem zu erstellenden Temporärverzeichnis in djvu um wandelt, per djvused zusammenbaut, und dann wieder in bscand zurückbringt, damit sie dort mit ocrodjvu vertextet werden?

In bash habe ich so etwas in der Art bei xsane2djvu mal hinbekommen (da "sequentiell, also eine nach der anderen Vorlage gescannt und jede neue angehängt), in C bin ich aber noch laienhafter als in bash ....

so long
hank

Anhang

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Es ist kein großes Problem die tiff-Datei(en) mit einem in einer anderen Sprache geschriebenen Skript/Programm weiter zu verarbeiten, es gibt ja (wie ich es schon im Patch genutzt habe) die Möglichkeit Programme aufzurufen und ihren den Rückgabecode auszuwerten - als erstes solltest du einen Workflow erarbeiten, der ausgehend von einzelnen tiff-Dateien ein Dokument im gewünschten Format zusammenbaut (und klären, ob die nacheinander einzeln dazu kommen oder man die alle in einem Rutsch verarbeiten muss). Dann müsstest du dir noch überlegen, wie der Workflow mit bscand sein soll, also welche Aktionen bzw. Tasten am Scanner wozu führen sollen.

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Ja, das Prinzip ist ja klar. Der Workflow ist auch klar:

  1. Baustelle/bscand

    1. aus dem bestehenden Programm die Erstellroutine für mehrseitigen Tiff-Datei nutzen,

  2. imagemagick (Abschnitt „convert“) o.ä.

    1. das tiff muss zerlegt werden, weil die djvu-Erstellung durch didjvu keine mehrseitigen Dateien verarbeiten kann,

  3. didjvu

    1. die einseitigen tiffs in djvu umwandeln,

    2. die djvu-Dateien wieder zu einer zusammenfassen (per didjvu --bundle geht das auch in einem Aufruf)

  4. ocrodjvu

    1. die zusammengefasste djvu-Datei mit ocrodjvu mit Textlage versehen und ausgeben .

Ausgelöst werden soll die Umwandelung des multipage-tiffs durch Druck auf die Scan-Taste, also analog zu PDF-Erstellung und Email-Erstellung.

Klar ist auch, dass ich das per bash-Skript irgendwie hinbekommen würde - statt didjvu direkt aus bscand heraus aufzurufen, den Zerlegeschritt (z.B. per convert), die DJVU-Erstellung und Zusammenfassung per didjvu, "eleganter" wäre es auch die Zerlegung aus bscand heraus zu lösen - versuche ich jetzt mal...

Anscheinend kann aber didjvu die zerlegten Dateien nicht wieder importieren, gibt es einen spezielles Zeichen, das als Platzhalter fungieren kann? In bash kann ich mit für didjvu mit etwas wie page???.png alle Dateien page(N, N+1. N+2 etc).png in nummerischer Reihenfolge einlesen lassen, wenn die Dateien mit dreistelligem Zähler versehenen sind (page000.png, page001.png, page 003.pnd etc)...

Grundsätzliches Problem: Die tiff-Dateien sind riesig; das betrifft alle Funktionen, wenn es sich um größere Scanprojekte handelt, könnte man bei kleinen Platten an die Kapazitätsgrenzen stoßen - ggf. müsste also den Speicherort für die Temporär-Dateien angepasst werden.

so long
hank

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Hab es jetzt mit einem Skript für die djvu-Erstellung mit didjvu hinbekommen, mehrseitige, auch farbige DjVus zu bauen. Das Skript, recht simple, sieht so aus:

1
2
3
4
5
#! /bin/bash

didjvu bundle --output ${1} /tmp/single???.png

rm -f /tmp/single*

Der patch im Anhang basiert wieder auf seahawk1986s Vorarbeit.

Damit kann man in der bscand.cfg jetzt die Aktion djvu_ocr verwenden.

Warum es ohne Skript nicht hinhaut, ist mir nicht ganz klar, siehe oben...

Naja, dann kann ich jetzt ja in Ruhe Fußball gucken 😉

so long
hank

EDIT: Aus mir nicht verständlichen Gründen wurde zunächst der Anhang nicht angezeigt; hier der direkte Link zum patch ⮷.

Anhang

Antworten |