DE69724557T2 - Dokumentenanalyse - Google Patents

Dokumentenanalyse Download PDF

Info

Publication number
DE69724557T2
DE69724557T2 DE69724557T DE69724557T DE69724557T2 DE 69724557 T2 DE69724557 T2 DE 69724557T2 DE 69724557 T DE69724557 T DE 69724557T DE 69724557 T DE69724557 T DE 69724557T DE 69724557 T2 DE69724557 T2 DE 69724557T2
Authority
DE
Germany
Prior art keywords
block
combination
blocks
arranged blocks
vertically arranged
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69724557T
Other languages
English (en)
Other versions
DE69724557D1 (de
Inventor
Ching-Yu Irvine Tyan
Hung Khei Lake Forest Huang
Toru Irvine Niki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of DE69724557D1 publication Critical patent/DE69724557D1/de
Application granted granted Critical
Publication of DE69724557T2 publication Critical patent/DE69724557T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition

Description

  • Die vorliegende Erfindung betrifft die Erzeugung einer Layoutbeschreibung auf der Grundlage eines eingegebenen Bitmaskenbilds, die das Layout des ursprünglichen eingegebenen Bitmaskenbilds genau wiedergibt.
  • In den letzten Jahren hat die Popularität des Internet drastisch zugenommen. Ein Grund für eine derartige Zunahme besteht in der weit verbreiteten Anwendung von HTML (HyperText Markup Language), bei dem es sich um eine Sprache zum Beschreiben des Dokumenterscheinungsbilds, des Dokumentlayouts und von Hyperlink-Spezifikationen handelt. Sie definiert die Syntax, die die Struktur und den Inhalt eines Dokuments einschließlich Text, Bildern und anderer unterstützter Medien beschreibt. Die Sprache stellt auch Verbindungen zwischen Dokumenten und anderen Internet-Betriebsmitteln über nachstehend als Hypertext-Links bezeichnete Hypertext-Verknüpfungen und andere Hyperlinks bereit. Unter Verwendung von HTML kann eine Web-Seite erzeugt werden, die zusätzlich zu Bitmaskenbildern, Grafikbildern und Text verschiedener Stile und Größen Hyperlinks umfaßt, die es einem Betrachter der Web-Seite erlauben, leicht zu einem anderen Punkt in der Seite oder zu einer völlig anderen Web-Seite, selbst einer durch einen anderen Server bereitgestellten Web-Seite, zu springen.
  • Sobald eine HTML-Datei über einen Server auf dem World-Wide Web verfügbar gemacht wurde, kann irgendein mit dem World-Wide Web verbundener Client auf die Seite zugreifen, indem lediglich die Seitenadresse in das passende Feld seines Browsers eingetippt wird. Nachdem die Adresse eingegeben worden ist, fordert der Browser den Server zum Senden der HTML-Datei auf, die Text, Verweise auf Grafik- und Bitmaskenbilddateien und Formatierungs- und Hyperlink-Informationen für die ganze Seite umfassen kann. Bei dem Empfang der HTML-Datei fordert der Browser automatisch die Grafik- und Bitmaskenbilddateien, auf die in der HTML-Datei verwiesen wird, von der identifizierten Quelle an.
  • Zum Anzeigen der HTML-Datei und der heruntergeladenen Bilddateien stützt sich der Browser auf in die HTML-Datei eingebettete HTML-Befehle. Auf diese Befehle wird als "Identifizierungskennzeichen" Bezug genommen. Die Identifizierungskennzeichen geben Merkmale oder Elemente einer Seite an und veranlassen den Browser zur Ausführung verschiedener Funktionen wie beispielsweise eines speziellen Typs von Formatierung. HTML-Identifizierungskennzeichen können in HTML-Dateien durch ihre Syntax identifiziert werden. D. h., die Identifizierungskennzeichen sind durch linke und rechte spitze Klammern umgeben, wie beispielsweise "<P>". In diesem Fall gibt "<" den Anfang des HTML-Identifizierungskennzeichens an, "P" ist das Identifizierungskennzeichen selbst (in diesem Fall ein einen neuen Textabsatz angebendes Identifizierungskennzeichen), und ">" gibt das Ende des Identifizierungskennzeichens an. Häufig treten Identifizierungskennzeichen in Paaren auf, um den Anfang und das Ende einer speziellen Funktion anzugeben. Das Anfangs-Identifizierungskennzeichen startet ein Merkmal (wie beispielsweise Überschrift, Fettdruck usw.), und das End-Identifizierungskennzeichen schaltet es ab. End-Identifizierungskennzeichen bestehen typischerweise aus dem Namen des startenden Identifizierungskennzeichens, dem ein Vorwärtsschrägstrich (/) vorangeht. Beispielsweise zeigen <strong> und </strong>, die Text umgeben, den umgebenden Text stärker an als anderen Text. Irgendwelche zusätzlichen Wörter in einem Identifizierungskennzeichen sind Attribute, gelegentlich mit einem zugeordneten Wert nach einem Gleichheitszeichen (=), die die Aktionen des Identifizierungskennzeichens weiter definieren oder modifizieren.
  • HTML 3.0 ist gegenwärtig der de facto World-Wide-Web-Standard, der zulässige Identifizierungskennzeichen und die Verschachtelung von Identifizierungskennzeichen definiert. Annähernd 100 verschiedene Identifizierungskennzeichen sind erlaubt und definiert.
  • Aufgrund der Komplexität von HTML 3.0 sowie seiner beschwerlichen Verwendungsanforderungen wird eine beträchtliche Anstrengung durch den Web-Designer aufgeboten, wenn er visuell ansprechende und verwendbare Web-Seiten verfaßt. Es wird z. B. angenommen, daß eine Organisation gute vorhandene geschriebene Marketingmaterialien hatte, die sie auf einer Web-Seite identisch wiedergeben wollte. Selbst diese scheinbar einfache Aufgabe hat es typischerweise erfordert, daß ein Spezialist in einem Versuch, das Layout und Erscheinungsbild der geschriebenen Materialien wiederzugeben, eine bedeutende Menge von Zeit für die Verfassung von HTML-Anweisungen von Hand verwendet hat.
  • Es sind mehrere Systeme vorgeschlagen worden, die diese Arbeit der Verfassung von HTML-Dateien aus geschriebenen Dokumenten automatisieren würden. Xerox Text Bridge Pro und Caere Omni Page Pro sind Beispiele für Systeme, die geschriebene Dokumente einscannen und auf der Grundlage des eingescannten Dokumentbilds HTML-Dateien erzeugen. Es ist bei der Erzeugung von HTML-Dateien, die das Layout, Tabellen und Bilder des ursprünglichen geschriebenen Dokuments genau darstellen, wo diese Systeme versagen. Insbesondere ist die automatische Erzeugung von HTML-Anweisungen für den Fall, in dem das geschriebene Dokument in Spalten angeordnet ist, oder allgemeiner, wenn Bereiche in dem ursprünglichen Dokument horizontal angrenzend sind, ein Hauptproblem gewesen. Der Ausdruck "horizontal angrenzend" bedeutet bei der Verwendung mit Bezug auf zwei Bildblöcke eine Situation, in der die vertikale Ausdehnung der zwei Blöcke überlappt, oder äquivalent, in der eine horizontale Linie gefunden werden kann, die beide Blöcke schneidet. Ähnlich bedeutet der Ausdruck "vertikal angrenzend" bei der Verwendung mit Bezug auf zwei Bildblöcke eine Situation, in der die horizontale Ausdehnung der zwei Blöcke überlappt, oder äquivalent, in der eine vertikale Linie gefunden werden kann, die beide Blöcke schneidet.
  • Ein typisches Beispiel für die mit derartigen Systemen verbundenen Probleme ist unter Bezugnahme auf 1 und 2 veranschaulicht. 1 stellt ein in das HTML-Format zu wandelndes ursprüngliches gedrucktes Dokument 10 dar. Wie es in 1 gezeigt ist, weist das ursprüngliche Dokument neben anderen Merkmalen auf: einen Titel 1 in der oberen linken Ecke, einen Untertitel 2 in der oberen rechten Ecke, Textspalten 4, 5 und 6, ein Bild 7 in der unteren linken Ecke und eine Fußzeile 9 in der unteren rechten Ecke.
  • 2 veranschaulicht es, wie auf der Grundlage der durch ein vorhandenes System zum Wandeln von Bitmaskenbildern in HTML erzeugten HTML-Datei eine Web-Seite 20 durch einen Web-Browser auf einer Anzeige 23 angezeigt werden würde. Denjenigen in 1 entsprechende Elemente in 2 sind ähnlich denen in 1 numeriert. Somit wird nach der Verarbeitung durch das vorhandene System der Titel 1 als ein Titel 11 wiedergegeben. Jedoch wird der Untertitel 2 statt in der oberen rechten Ecke wiedergegeben zu werden, statt dessen als ein Element 12 in der oberen linken Ecke gerade unterhalb des Titels 11 wiedergegeben. Auf ähnliche Weise ist die ganze Textspaltenstruktur des ursprünglichen Dokuments beseitigt worden, und das Bild 17 belegt die ganze Breite der Seite und ist zwischen Textzeilen gelegt, statt sich in der unteren linken Ecke zu befinden. Schließlich wird eine Fußzeile 19 in der unteren linken Ecke statt der unteren rechten Ecke wiedergegeben.
  • Der vorstehende Vergleich zeigt das vollständige Versagen von kommerziell verfügbaren Systemen bei der Erfassung vieler Layout- und Stilistikelemente des ursprünglichen Dokuments. Andere bekannte verfügbare Systeme verpassen ebenfalls zu häufig Layoutmerkmale. Entsprechend befassen sich kommerziell verfügbare Systeme nicht angemessen mit den durch die komplexe und beschwerliche Natur von HTML verursachten Problemen.
  • Y. Tang et al. "Document Analysis and Understanding A Brief Survey", ICDAR, First International Conference on Document Analysis and Recognition, Frankreich, 30. September bis 2. Oktober 1991, Seiten 17 bis 31 offenbart eine Dokumentverarbeitungstechnik, bei der die logische Struktur eines Dokuments durch eine Baumform dargestellt wird, in der nur vertikal angeordnete Blöcke identifiziert werden.
  • Gemäß einer ersten Ausgestaltung der Erfindung wird ein Verfahren zur Erzeugung von Layoutdaten aus sich aus horizontal und vertikal angeordneten Blöcken zusammensetzenden Blockdaten bereitgestellt, mit:
    einem Vertikalbestimmungsschritt des Bestimmens, ob eine Kombination von vertikal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt;
    einem Vertikalkombinationsschritt des Kombinierens der Kombination von vertikal angeordneten Blöcken in dem Fall, in dem es der Vertikalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist;
    wobei das Verfahren die nachfolgenden Schritte umfaßt:
    einen Horizontalbestimmungsschritt des Bestimmens, ob eine Kombination von horizontal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt;
    einen Horizontalkombinationsschritt des Kombinierens der Kombination von horizontal angeordneten Blöcken in einem Fall, in dem es der Horizontalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist; und
    einen Erzeugungsschritt des Erzeugens von Layoutdaten auf der Grundlage der in dem Vertikalkombinationsschritt und dem Horizontalkombinationsschritt ausgebildeten Kombinationen.
  • Gemäß einer zweiten Ausgestaltung der Erfindung wird eine Vorrichtung zur Erzeugung von Layoutdaten aus sich aus horizontal und vertikal angeordneten Blöcken zusammensetzenden Blockdaten bereitgestellt, mit:
    einer Erhalteinrichtung zum Erhalten der Blockdaten; und
    einem Speicher zum Speichern von durch eine Verarbeitungseinrichtung ausführbaren Prozeßschritten;
    einer Verarbeitungseinrichtung, die von der Vorrichtung verwendet die in der Verarbeitungseinrichtung gespeicherten Prozeßschritte ausführt, um es zu bestimmen, ob eine Kombination von vertikal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt, um die Kombination von vertikal angeordneten Blöcken in einem Fall zu kombinieren, in dem es der Vertikalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist;
    wobei die Verarbeitungseinrichtung von der Vorrichtung verwendet nachfolgend die weiteren in der Verarbeitungseinrichtung gespeicherten Prozeßschritte ausführt, um es zu bestimmen, ob eine Kombination von horizontal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt, um die Kombination von horizontal angeordneten Blöcken in einem Fall zu kombinieren, in dem es der Horizontalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist, und um auf der Grundlage der in dem Vertikalkombinationsschritt und dem Horizontalkombinationsschritt ausgebildeten Kombinationen Layoutdaten zu erzeugen.
  • Gemäß einer dritten Ausgestaltung der Erfindung werden durch einen Computer ausführbare Prozeßschritte bereitgestellt, die auf einem durch einen Computer lesbaren Träger gespeichert sind, wobei die durch einen Computer ausführbaren Prozeßschritte zur Erzeugung von Layoutdaten aus sich aus horizontal und vertikal angeordneten Blöcken zusammensetzenden Blockdaten dienen, wobei die durch einen Computer ausführbaren Prozeßschritte umfassen:
    einen Vertikalbestimmungsschritt zum Bestimmen, ob eine Kombination von vertikal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt;
    einen Vertikalkombinationsschritt zum Kombinieren der Kombination von vertikal angeordneten Blöcken in einem Fall, in dem es der Vertikalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist;
    einen nachfolgenden Horizontalbestimmungsschritt zum Bestimmen, ob eine Kombination von horizontal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt;
    einen Horizontalkombinationsschritt zum Kombinieren der Kombination von horizontal angeordneten Blöcken in einem Fall, in dem es der Horizontalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist; und
    einen Erzeugungsschritt zum Erzeugen von Layoutdaten auf der Grundlage der in dem Vertikalkombinationsschritt und dem Horizontalkombinationsschritt ausgebildeten Kombinationen.
  • Diese kurze Zusammenfassung ist bereitgestellt worden, damit die Natur der Erfindung schnell verstanden werden kann. Ein vollständigeres Verständnis der Erfindung kann unter Bezugnahme auf die folgende ausführliche Beschreibung der bevorzugten Ausführungsbeispiele davon in Verbindung mit den beigefügten Zeichnungen erhalten werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt ein ursprüngliches gedrucktes Dokument dar.
  • 2 stellt eine auf der Grundlage einer durch ein kommerziell verfügbares System erzeugten HTML-Datei durch einen Web-Browser angezeigte HTML-Seite dar.
  • 3 zeigt eine perspektivische Ansicht, die das äußerliche Erscheinungsbild einer Workstation darstellt.
  • 4 zeigt ein Blockschaltbild der in 3 dargestellten Workstation.
  • 5 zeigt ein Flußdiagramm, das ein Verfahren zum Erzeugen einer HTML-Datei auf der Grundlage eines Bitmaskenbilds veranschaulicht.
  • 6 zeigt eine grafische Darstellung, die eine Ausgabe einer bei dem gedruckten Dokument gemäß 1 ausgeführten Blockauswahlanalyse veranschaulicht.
  • 7 zeigt eine Ansicht zum Erläutern einer Datenausgabe durch eine Blocksegmentierungsanalyse. 8 zeigt eine Ansicht zum Erläutern einer Ausgabe einer Blockanalyse. 9 zeigt ein Flußdiagramm zum Erläutern einer Layoutanalyse und Erzeugung von Layoutdaten auf der Grundlage einer Blockanalyse.
  • 10A-1 bis 10A-14 zeigen Ansichten zum Erläutern einer iterativen Verarbeitung einer Layoutanalyse bei den in 6 dargestellten Blöcken. 10B-1 bis 10B-14 zeigen Ansichten zum Erläutern einer Erzeugung von Layoutdaten für jede entsprechende Iteration gemäß 10A-1 bis 10A-14.
  • 11A zeigt ein Flußdiagramm, das eine Identifizierung des Blocktyps gemäß der vorliegenden Erfindung veranschaulicht.
  • 11B veranschaulicht zwei Fälle, in denen eine Blockneuordnung erforderlich ist.
  • 12 zeigt eine Ansicht zum Erläutern einer Ausgabe einer Blocktypbestimmung auf der Grundlage von Layoutdaten.
  • 13A bis 13D zeigen Flußdiagramme, die die Erzeugung von HTML-Anweisungen für jeden Block in einem Bitmaskenbild veranschaulichen.
  • 14 zeigt eine Ansicht, die eine auf der Grundlage eines gemäß der Erfindung automatisch erzeugten HTML-Dokuments durch einen Web-Browser angezeigte HTML-Seite darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • 3 zeigt eine Ansicht, die das äußerliche Erscheinungsbild einer Computerworkstation zum Realisieren der Erfindung darstellt. In 3 ist eine Workstation 30 wie beispielsweise ein Macintosh oder ein IBM PC oder PC-kompatibler Computer mit einer Fensterumgebung wie beispielsweise Microsoft Windows gezeigt. Mit der Workstation 30 sind ein Bildschirm 31 wie beispielsweise ein Farbmonitor, eine Tastatur 32 zum Eingeben von Benutzerbefehlen und eine Zeigevorrichtung 34 wie beispielsweise eine Maus zum Zeigen auf und zum Manipulieren von auf dem Bildschirm 31 angezeigten Objekten bereitgestellt. Die Workstation 30 umfaßt eine Massenspeichervorrichtung wie beispielsweise eine Computerplatte 35 zum Speichern von Datendateien. Eine nachstehend als Scanner bezeichnete Abtasteinrichtung 37 ist zum Erzeugen eines Bitmaskenbilds aus einem eingegebenen gedruckten Dokument bereitgestellt.
  • 4 zeigt ein ausführliches Blockschaltbild, das den internen Aufbau der Workstation 30 darstellt. Wie es in 4 gezeigt ist, umfaßt die Workstation 30 eine Zentraleinheit (CPU) 41, die mit einem Computerbus 42 verbunden ist. Ebenfalls mit dem Computerbus 42 verbunden sind eine Scannerschnittstelle 44, eine Anzeigeschnittstelle 45, eine Tastaturschnittstelle 46, eine Mausschnittstelle 47, ein Hauptspeicher 49 und eine Festplatte 35. Die Platte 35 speichert ein Fensterbetriebssystem wie beispielsweise Microsoft Windows, verschiedene Fensteranwendungen, ein HTML-Wandlungsprogramm zum Erzeugen einer HTML-Datei auf der Grundlage eines Bitmaskenbilds gemäß der Erfindung, vorher gescannte Bitmaskenbilder, vorher erzeugte HTML-Dateien und einen Web-Browser zum Anzeigen von HTML-Dateien. Der Hauptspeicher 49 tritt mit dem Computerbus 42 in Verbindung, um Schreib-Lese-Speicher mit wahlfreiem Zugriff zur Verwendung durch die CPU 41 während der Ausführung gespeicherter Prozeßschritte wie beispielsweise denjenigen des HTML-Wandlungsprogramms bereitzustellen. Genauer lädt die CPU 41 die Prozeßschritte von der Platte 35 in den Hauptspeicher 49 und führt die gespeicherten Prozeßschritte aus dem Hauptspeicher 49 aus.
  • [Erzeugung von HTML]
  • 5 zeigt ein Flußdiagramm, das aus auf der Platte 35 gespeicherten Prozeßschritten zum Erzeugen einer HTML-Datei auf der Grundlage eines Bitmaskenbilds gemäß der Erfindung besteht. Kurz gesagt wird gemäß 5 ein Bitmaskenbild erhalten, wie beispielsweise durch ein nachstehend als Scannen bezeichnetes Abtasten oder eine Wiedergewinnung, und in Blöcke segmentiert. Die Lage jedes Blocks wird bestimmt, jeder Block wird in Vorbereitung auf eine Einfügung in eine HTML-Datei analysiert, und es wird eine Layoutanalyse zum Identifizieren von Layoutbeziehungen zwischen den Blöcken auf der Grundlage der relativen Lagen in dem Bitmaskenbild ausgeführt. Auf der Grundlage der Layoutbeziehungen wird ein Blocktyp für jeden Block bestimmt, es wird eine Spaltenspanne und Zeilenspanne für jeden Block bestimmt, Blöcke werden bei Bedarf neu geordnet, und es wird eine HTML-Datei auf der Grundlage des Blocktyps und der Spalten- und Zeilenspanneninformationen für die Blöcke erzeugt.
  • [Erhalten eines Bitmaskenbilds]
  • Insbesondere wird in einem Schritt S501 ein Bitmaskenbild erhalten. Typischerweise wird dies erreicht, indem ein gedrucktes Bild unter Verwendung des Scanners 37 gescannt wird. Das Bitmaskenbild kann jedoch auch aus einer auf der Platte 35 gespeicherten Datei oder in irgendeiner anderen Art und Weise wiedergewonnen werden.
  • [Blockidentifizierung und -segmentierung]
  • Ein Schritt S502 umfaßt Prozeßschritte, durch die Blöcke in den Bilddaten automatisch erfaßt werden und ihre Lagen mit Bezug auf das Bild automatisch identifiziert werden. Ein "Block" ist eine logische verwandte Gruppe von Bilddaten wie beispielsweise ein Bereich von aufeinanderfolgenden Absätzen von Textbilddaten, ein Bereich mit Titelbilddaten oder Bereiche mit Nicht-Text-Bilddaten wie beispielsweise Grafikbilddaten, Linienzeichnungsbilddaten, Abbildungsdaten oder Tabellenbilddaten. Vorzugsweise erzeugt die Blocksegmentierung gemäß dem Schritt S502 zusätzlich zu der automatischen Erfassung und Identifizierung von Blöcken und ihren Lagen auch hierarchische Baumdaten, durch die die logische Beziehung jedes Blocks mit Bezug auf andere Blöcke identifiziert wird. Beispielsweise werden häufig Textbilddaten in Nicht-Text-Bilddaten gefunden, wie beispielsweise in dem Fall von Textetiketten in einer Linienkunstgrafik. In einer derartigen Situation würden die Textetiketten in dem hierarchischen Baum als ein Kindknoten des Elternblocks, der die Grafik umfaßt, identifiziert werden. Hierarchische Baumdaten wie beispielsweise diese sind in nachfolgenden Verarbeitungsschritten verwendbar, um die Beziehung jedes der Blöcke zu bestimmen.
  • Geeignete Blocksegmentierungstechniken sind in der Literatur und auch in der am 24. April 1992 eingereichten und "Method And Apparatus For Character Recognition" betitelten gleichzeitig anhängigen Patentanmeldung mit der Seriennummer 07/873,012; und der am 10. November 1994 eingereichten und "Page Analysis System" betitelten gleichzeitig anhängigen Patentanmeldung mit der Seriennummer 08/338,781 beschrieben. Die Inhalte dieser zwei Patentanmeldungen werden hiermit in diese Anmeldung aufgenommen als ob sie vollständig dargelegt seien. Allgemein ausgedrückt arbeiten derartige Blocksegmentierungstechniken, indem sie einzelne Bildelementdaten in dem Bild zum Identifizieren verbundener Komponenten des Bilds analysieren, die verbundenen Komponenten zum Bestimmen, ob eine verbundene Komponente eine verbundene Textkomponente oder eine verbundene Nicht-Text-Komponente ist, analysieren und danach die verbundenen Komponenten in Blöcke gruppieren. Die Text- und Nicht-Text-Blöcke werden daraufhin analysiert, um Attribute jedes Blocks zu bestimmen. Beispielsweise werden in dem Fall von Textblöcken die Blöcke analysiert, um es bestimmen, ob sie Titel, Klartext, Beschriftungen für Figuren und dergleichen sind. In dem Fall von Nicht-Text-Blöcken werden die Blöcke analysiert, um es bestimmen, ob sie Linienkunstbilder, Halbtonbilder, Farbbilder, tabellenförmig angeordnete Daten und dergleichen sind. Zu der gleichen Zeit wird ein hierarchischer Baum erzeugt, der durch Eltern-Kind-Knotenbeziehungen die Beziehungen der Text- und Nicht-Text-Blöcke in den Bilddaten zeigt.
  • 6 zeigt eine Veranschaulichung der Ergebnisse der Blocksegmentierung gemäß dem Schritt S502. Wie in 6 gezeigt und mit Bezug auf in 1 veranschaulichte ursprüngliche Bilddaten entspricht ein erster Block 51 (BLK1) der ersten Zeile von Titeldaten gemäß 1. Desgleichen entspricht ein zweiter Block 52 (BLK2) der zweiten Zeile von Titeldaten gemäß 1. Ein fünfter Block 55 (BLK5) entspricht der ersten Zeile des Untertitels. Ein achter Block 58 (BLK8) entspricht dem großen "S" in der Beschriftung des Artikels, wohingegen ein neunter Block 59 (BLK9) dem Rest des Texts in der Beschriftung des Artikels entspricht. Blöcke 53 (BLK10, BLK11, BLK14 und BLK15) entsprechen Text in dem Artikel selbst. Ein Block 54 (BLK12) entspricht dem Halbtonbild in dem Artikel, wohingegen ein Block 56 (BLK13) der Textbeschriftung für das Bild entspricht. Andere in 6 gezeigte Blöcke haben Bedeutungen, die aus dem Vorstehenden leicht erkannt werden können.
  • 7 zeigt eine Ansicht zum Erläutern von Daten, die für jeden Block gespeichert werden, einschließlich Attributdaten und Daten einer hierarchischen Baumstruktur. Im einzelnen und wie in 7 gezeigt werden für jeden Block Blockdaten 150 gespeichert und umfassen zumindest eine Blocknummeridentifizierung 151, Koordinateninformationen 152 (wie beispielsweise obere linke und untere rechte Koordinaten eines umschreibenden Rechtecks für den Block), Attributdaten 153, die es zusammen mit irgendwelchen anderen während der Blocksegmentierung bestimmten Attributen speichern, ob der Block Text oder Nicht-Text ist, und eine hierarchische Baumstruktur 154, die Zeiger auf Eltern- und Kindknoten für den Block umfaßt.
  • Zusammenfassend sind bei dem Ende der Blocksegmentierung in dem Schritt S502 Bilddaten analysiert worden, um Blöcke von logisch verwandten Bilddaten automatisch zu erfassen und Lagen der Blöcke automatisch zu identifizieren. Darüber hinaus ist eine die logische Beziehung von einem Block zu einem anderen Block zeigende hierarchische Baumstruktur für jeden derartigen Block gespeichert worden.
  • [Blockanalyse]
  • Die Blockanalyse in dem Schritt S504 umfaßt Prozeßschritte, durch die jeder der in dem Schritt S502 identifizierten Blöcke analysiert wird, um es zu bestimmen, ob er ein Block ist, der das Dokumentlayout beeinflußt, und falls dem so ist, benötigte Informationen zur HTML-Erzeugung zu extrahieren.
  • Im einzelnen bestimmt es die Blockanalyse gemäß dem Schritt S504 für jeden in dem Schritt S502 identifizierten Block, ob der Block das Dokumentlayout beeinflußt, indem sie den hierarchischen Baum prüft, um es zu bestimmen, ob der Block ein Textblock ist, der kein Kind eines Nicht-Text-Blocks ist. Der Zweck dieses Tests besteht darin, jeden Textblock, der sich in einem Nicht-Text-Block befindet, von der weiteren Verarbeitung auszuschließen, da ja ein derartiger Textblock das Dokumentlayout nicht beeinflußt. Beispielsweise beeinflußt ein Textetikett in einer Linienkunstgrafik das Dokumentlayout nicht; es ist vielmehr das Histogramm, das das Dokumentlayout beeinflußt. Entsprechend ist es durch ein Prüfen des in dem Schritt S502 erzeugten hierarchischen Baums möglich, Blöcke, die das Dokumentlayout beeinflussen, von Blöcken, die das Dokumentlayout nicht beeinflussen, zu unterscheiden.
  • Demgegenüber beeinflussen Nicht-Text-Blöcke wie beispielsweise Linienkunstzeichnungen, Halbtonbilder und Tabellendaten vermutlich das Dokumentlayout und werden daher in dem Schritt S504 zur weiteren Analyse ins Auge gefaßt.
  • In dem Kontext des Beispiels gemäß 6 ist es zu erkennen, daß alle dort gezeigten Blöcke das Dokumentlayout beeinflussen. Entsprechend werden keine Blöcke von der weiteren Verarbeitung ausgeschlossen. Dies würde z. B. in der Situation nicht der Fall sein, in der ein Dokumentbild Textdaten in einem Bild oder einer Tabelle umfassen würde. In diesen Situationen würde der derartige Textdaten umfassende Block von der weiteren Verarbeitung ausgeschlossen werden, da ein derartiger Textblock das Dokumentlayout nicht beeinflußt, sondern vielmehr der Bildblock das Dokumentlayout beeinflußt.
  • Alle so als das Dokumentlayout beeinflussend identifizierten Blöcke werden danach in Vorbereitung auf die HTML-Erzeugung gemäß Bildattributen 153 verarbeitet. Im einzelnen erzeugt dann, wenn ein Bildattribut 153 den Block als Nicht-Text-Daten wie beispielsweise ein Halbtonbild identifiziert, die Blockanalyse in dem Schritt S504 eine geeignete Bilddatei für das Bild. Vorzugsweise wird die Bilddatei in einem gemeinsam verwendeten Web-Browser-Format wie beispielsweise dem Format .GIF oder .JPEG gespeichert. Demgegenüber wird der Block für Blöcke des Texttyps einer Analyse einer optischen Zeichenerkennung unterzogen, um eine Datei von durch einen Computer lesbaren Zeichencodes wie beispielsweise ASCII-Zeichencodes zur nachfolgenden Verwendung bei der HTML-Erzeugung zu erhalten und auch die Anzahl von Textzeilen in jedem Textblock zu bestimmen.
  • 8 zeigt eine Ansicht zum Erläutern der Ausgabe der Blockanalyse in dem Schritt S504. Insbesondere werden wie in 8 gezeigt für jeden Block, der das Dokumentlayout beeinflußt, Daten 160 gespeichert, die zumindest eine Blocknummer 161, Koordinatendaten 162, Attributdaten 163, die die gleichen Attributdaten wie die Attributdaten 153 gemäß 7 sind, Daten eines hierarchischen Baums 164, die mit der Ausnahme, daß Kindknoteninformationen weggelassen sein können, die gleichen wie die Daten eines hierarchischen Baums 154 gemäß 7 sind, und Blockanalyseergebnisse 165 umfassen. Die Blockanalyseergebnisse 165 können z. B. in dem Fall, in dem die Attributdaten 163 es angeben, daß es sich bei dem Block um Nicht-Text-Daten handelt, einen Bilddateinamen umfassen, oder können in dem Fall, in dem die Attributdaten 163 es angeben, daß es sich bei dem Block um Daten des Texttyps handelt, Ergebnisse einer optischen Zeichenkennung und eine Anzahl von Textzeilen in jedem Textblock umfassen.
  • Zusammenfassend führt die Blockanalyse gemäß dem Schritt S504 zu einer Identifizierung derjenigen Blöcke, die das Dokumentlayout beeinflussen, und einer Bilddatei oder Ergebnissen einer optischen Zeichenerkennung für jeden dieser Blöcke.
  • [Layoutanalyse]
  • Der Schritt S505 gemäß 5 umfaßt Prozeßschritte, durch die die in dem Schritt S504 identifizierten Blöcke analysiert werden, um Layoutdaten für das Dokument bereitzustellen. Diese Prozeßschritte sind in 9 veranschaulicht. Allgemein ausgedrückt testen die Prozeßschritte gemäß 9 jede mögliche Kombination von Paaren von vertikal angeordneten Blöcken oder Gruppierungen von Blöcken, um es zu bestimmen, ob das kleinste Rechteck, das das Paar von Blöcken umschreibt, auf irgendwelche anderen Blöcke überlappt, und falls die Kombination nicht überlappt, wird das Paar in einer einzelnen Gruppierung kombiniert. Desgleichen wird jede mögliche Kombination von Paaren von horizontal angeordneten Blöcken oder Gruppierungen von Blöcken getestet, um es zu bestimmen, ob die Kombination auf irgendwelche anderen Blöcke überlappt, und falls keine Überlappung vorhanden ist, wird das Paar in einer horizontalen Gruppierung kombiniert. Vertikale Kombinationen werden zuerst getestet, da die meisten englischsprachigen Dokumente in vertikalen Layouts angeordnet sind; entsprechend sollten in Situationen, in denen es erwartet werden kann, daß Dokumente in horizontalen Layouts angeordnet sind, wie beispielsweise bei einigen japanischsprachigen Dokumenten, horizontale Gruppierungen zuerst getestet werden. Der Prozeß des Testens von vertikalen Gruppierungen und daraufhin horizontalen Gruppierungen wird wiederholt, bis keine weiteren Gruppierungen vorhanden sind, die ausgebildet werden können, und das ganze Dokument in einer einzelnen Gruppierung kombiniert worden ist, woraufhin die Layoutdaten vollständig sind.
  • Nachstehend ist 9 in Verbindung mit dem veranschaulichenden Beispiel gemäß 10, das auf dem Dokument gemäß 1 basiert, ausführlicher erläutert. Somit wird in einem Schritt S901 eine Kombination von zwei vertikal angeordneten "Gruppierungen" zuerst getestet. Gruppierungen sind entweder einzelne Blöcke oder Blöcke, die vorher in einer einzelnen Gruppierung kombiniert worden sind. "Vertikal angeordnete" Gruppierungen sind Gruppierungen, die sich in der Lage vertikal unterscheiden; somit werden Gruppierungen, die sich in der vertikalen Richtung nicht unterscheiden, wie es auf der Grundlage von Koordinatendaten 162 gemessen wird, in diesem Schritt S901 nicht getestet.
  • Ein veranschaulichendes Beispiel für eine erste derartige Kombination ist in 10A-1 gezeigt. Wie es in 10A-1 gezeigt ist, sind Blöcke BLK1 und BLK2 in dem Sinne vertikal angeordnet, daß sie sich in ihren vertikalen Lagen unterscheiden. Eine gestrichelte Linie 171 stellt ein umschreibendes Rechteck dar, das diese zwei Blöcke einschließt. Es ist diese Kombination wie durch das umschreibende Rechteck dargestellt, die in dem Schritt S902 getestet wird. Für veranschaulichende Zwecke ist eine kleine Lücke zwischen dem Rechteck und den eingeschlossenen Blöcken gezeigt. Es ist jedoch zu beachten, daß die tatsächliche Gruppierungsgrenze im allgemeinen mit den Blockgrenzen zusammenfällt.
  • Im einzelnen testet der Schritt S902 zum Bestimmen, ob die Kombination von vertikal angeordneten Gruppierungen auf irgendeine andere Gruppierung überlappt. Eine Kombination würde auf eine andere Gruppierung überlappen, falls bei der Ausbildung der Kombination die Kombination die Gesamtheit oder irgendeinen Teil irgendeines anderen Blocks oder irgendeiner anderen Gruppierung umfassen würde. Wenn die Kombination nicht auf irgendeine andere Gruppierung überlappt, dann verzweigt der Ablauf zu einem Schritt S903, in dem die Gruppierungen in einer vertikalen Gruppierung vertikal kombiniert werden. Demgegenüber rückt der Ablauf dann, wenn die Kombination auf irgendeine andere Gruppierung überlappt, direkt zu einem Schritt S904 vor, der es bestimmt, ob noch mehr vertikale Kombinationen vorhanden sind, die getestet werden müssen. Wenn mehr vertikale Kombinationen getestet werden müssen, dann kehrt der Ablauf zu dem Schritt S901 zurück, bis alle vertikal angeordneten Gruppierungen geeignet getestet sind.
  • Zu 10A-1 zurückkehrend werden somit die Blöcke BLK1 und BLK2 in einer einzelnen vertikalen Gruppierung vertikal kombiniert (Schritt S903), da das umschreibende Rechteck 171 nicht auf irgendwelche anderen Gruppierungen überlappt (Schritt S902). Dies ist in 10B-1 grafisch veranschaulicht, die die Kombination der Blöcke BLK1 und BLK2 in einer einzelnen vertikalen Gruppierung darstellende Layoutdaten zeigt.
  • Nachstehend auf 10A-2 Bezug nehmend werden, da mehr vertikale Kombinationen vorhanden sind (Schritt S904), diese vertikalen Kombinationen getestet. Somit stellt in 10A-2 ein umschreibendes Rechteck 172 die Kombination der vertikalen Gruppierung dar, die aus den Blöcken BLK1 und BLK2 sowie einem vertikal angeordneten Block BLK3 besteht. Da die Kombination nicht auf irgendeine andere Gruppierung überlappt, wird die Kombination in einer neuen Gruppierung vertikal kombiniert, wie es in den Layoutdaten gemäß 10B-2 veranschaulicht ist.
  • In 10A-3 wird ein Block BLK4 nicht getestet, da er auf der Grundlage von Koordinatendaten 163 keine vertikal angeordnete Gruppierung ist. Vielmehr ist der nächste Block, der getestet wird, ein Block BLK5, da er eine vertikal angeordnete Gruppierung ist. Das umschreibende Rechteck für die Kombination ist mit der gestrichelten Linie 173 veranschaulicht. Wie es zu erkennen ist, umfaßt die Kombination den Block BLK4. Somit überlappt die Kombination auf eine andere Gruppierung, und es wird keine vertikale Kombination ausgebildet. Somit bleibt das Layout das gleiche, wie es in 10B-3 veranschaulicht ist.
  • Wie es leicht zu erkennen ist, führt irgendeine andere Kombination der vertikalen Gruppierung der Blöcke BLK1, BLK2 und BLK3 bei einer Kombination mit irgendeinem anderen Block des Dokuments zu einer Überlappung auf eine andere Gruppierung. Wenn jeder Test in dem Schritt S901 ausgeführt wird, bestimmt es der Schritt S902 entsprechend, daß die Kombination auf eine andere Gruppierung überlappt, und es werden keine weiteren vertikalen Kombinationen mit dieser Gruppierung ausgebildet.
  • Nachstehend auf 10A-4 Bezug nehmend werden nun Kombinationen von vertikalen Gruppierungen mit dem nächsten zulässigen Block oder der nächsten zulässigen Gruppierung ausgebildet, in diesem Fall dem Block BLK4. Ein umschreibendes Rechteck 174, das eine Kombination des Blocks BLK4 mit dem Block BLK5 zeigt, zeigt es klar, daß eine Überlappung mit dem Block BLK3 vorhanden ist. Da die Kombination auf eine andere Gruppierung überlappt, wird somit keine vertikale Kombination ausgebildet, und die Gruppierungen bleiben wie in den Layoutdaten gemäß 10B-4 gezeigt. Desgleichen kann es verstanden werden, daß Kombinationen mit irgendeinem anderen Block mit BLK4 zu einer Überlappung führen und keine weiteren vertikalen Kombinationen ausgebildet werden.
  • Nachstehend auf 10A-5 Bezug nehmend, werden Kombinationen von vertikal angeordneten Gruppierungen mit dem Block BLK5 getestet. Eine gestrichelte Linie 175 stellt ein umschreibendes Rechteck für die Kombination von Blöcken BLK5 und BLK6 dar. Da keine Überlappungen auf irgendeine andere Gruppierung vorhanden sind, werden die Blöcke BLK5 und BLK6 vertikal kombiniert, wie es in den Layoutdaten gemäß 10B-5 veranschaulicht ist.
  • Desgleichen wird in 10A-6 daraufhin die Gruppierung der Blöcke BLK5 und BLK6 in Kombination mit einem Block BLK7 getestet, wie es durch ein umschreibendes Rechteck 176 veranschaulicht ist. Da die Kombination nicht auf irgendeine andere Gruppierung überlappt, werden die Gruppierungen vertikal kombiniert, wie es in den Layoutdaten gemäß 10B-6 veranschaulicht ist.
  • Der Prozeß des Testens vertikaler Kombinationen von Gruppierungen setzt sich fort, bis keine weiteren zulässigen vertikalen Kombinationen mehr vorhanden sind, die getestet werden können. In Verbindung mit diesem Testen ist es zu erkennen, daß die einzigen weiteren Gruppierungen, die kombiniert werden können, Blöcke BLK12 und BLK13 sowie Blöcke BLK14 und BLK15 sind. Diese Situation ist in 10A-7 und 10B-7 veranschaulicht.
  • Da keine weiteren vertikalen Kombinationen zum Testen verfügbar sind, rückt der Ablauf daraufhin zu einem Schritt S905 vor, in dem ähnliche Kombinationen und Tests von Kombinationen in der horizontalen Richtung ausgebildet werden. Somit testet der Schritt S905 Kombinationen von zwei horizontal angeordneten Gruppierungen, ein Schritt S906 bestimmt es, ob die Kombination auf irgendwelche anderen Gruppierungen überlappt, ein Schritt S907 kombiniert in einem Fall, in dem der Schritt S906 es bestimmt, daß die Kombination nicht auf irgendeine andere Gruppierung überlappt, Gruppierungen horizontal, und ein Schritt S908 bestimmt es, ob noch mehr horizontale Kombinationen vorhanden sind, die getestet werden müssen.
  • Im einzelnen wird zu 10A-8 zurückkehrend die Gruppierung der Blöcke BLK1, BLK2 und BLK3 in Kombination mit dem horizontal angeordneten Block BLK4 getestet. Wie es in der 10A-8 zu sehen ist, überlappt ein umschreibendes Rechteck 177 nicht auf irgendwelche anderen Gruppierungen, und die Kombination wird daher ausgebildet. Dies ist in den Layoutdaten gemäß 10B-8 grafisch veranschaulicht.
  • Es werden keine anderen Tests mit Bezug auf die neue horizontale Gruppierung der Blöcke BLK1 bis BLK4 ausgeführt, da keine anderen Blöcke oder Gruppierungen von Blöcken horizontal angeordnet sind, wie es zu erkennen ist. Desgleichen ist kein Block oder keine Gruppierung von Blöcken mit der vertikalen Gruppierung der Blöcke BLK5 bis BLK7 horizontal angeordnet, und es wird kein Test für diese Blöcke ausgeführt.
  • Entsprechend ist der nächste für Kombinationen der horizontal angeordneten Gruppierung getestete Block ein Block BLK8, und die erste derartige Kombination ist mit einem Block BLK9. Weil ein umschreibendes Rechteck 178 nicht auf irgendeinen anderen Block überlappt, wird die horizontale Kombination ausgebildet, wie es in den Layoutdaten gemäß 10B-9 veranschaulicht ist.
  • Die neue Gruppierung der Blöcke BLK8 und BLK9 wird nicht mit einem Block BLK10 getestet, da der Block BLK10 nicht horizontal angeordnet ist. Ein Block BLK11 ist horizontal angeordnet, aber wie es in 10A-10 gezeigt ist, überlappt eine horizontale Kombination der beiden auf BLK10, und entsprechend wird keine Kombination ausgebildet. Entsprechend bleiben die Gruppierungen wie in den Layoutdaten gemäß 10B- 10 gezeigt.
  • Alle anderen Kombinationen von horizontal angeordneten Gruppierungen überlappen ebenfalls auf andere Blöcke und/oder Gruppierungen. Wenn in dem Schritt S905 ausgebildet und in dem Schritt S906 getestet, werden entsprechend keine weiteren horizontalen Kombinationen ausgebildet.
  • Der Ablauf rückt daraufhin zu einem Schritt S909 vor, um es zu bestimmen, ob alle Blöcke in dem Bild in eine einzelne Gesamtgruppe integriert worden sind. Solange Blöcke bleiben, die nicht in eine Gesamtgruppierung gruppiert sind, werden die Prozeßschritte von S901 bis S908 iteriert, bis alle Blöcke in einer Gruppierung enthalten sind.
  • Wie es mit Bezug auf 10A-11 veranschaulicht ist, wird somit die die Blöcke BLK1 bis BLK4 umfassende horizontale Gruppierung in Kombination mit der die Blöcke BLK4 bis BLK6 umfassenden vertikalen Gruppierung getestet, wie es durch ein umschreibendes Rechteck 179 veranschaulicht ist. Da keine Blöcke überlappen, wird eine Kombination vertikal ausgebildet, wie es in den Layoutdaten gemäß 10B-11 veranschaulicht ist.
  • Desgleichen wird in 10A-12 die die Blöcke BLK8 und BLK9 umfassende horizontale Gruppierung mit Bezug auf den Block BLK10 getestet, wie es durch ein umschreibendes Rechteck 180 veranschaulicht ist. Da keine Blöcke überlappen, wird eine vertikale Gruppierung ausgebildet, wie es in den Layoutdaten gemäß 10B-12 veranschaulicht ist.
  • Bei dieser Iteration der Schritte S901 bis S904 sind keine weiteren vertikalen Kombinationen überlappungsfrei. Entsprechend werden keine weiteren vertikalen Kombinationen ausgebildet.
  • 10A-13 veranschaulicht es, daß mit Bezug auf diese Iteration der horizontalen Schritte S905 bis S908 eine weitere horizontale Gruppierung ausgebildet werden kann, wie es bei einem umschreibenden Rechteck 181 veranschaulicht ist. Entsprechend stellen sich die Gruppierungen dar, wie es in 10A-13 und in den Layoutdaten gemäß 10B-13 gezeigt ist.
  • Weitere vertikale und horizontale Iterationen werden von den Schritten S901 bis S908 ausgeführt, was zu einer endgültigen Situation führt, die in 10A-14 und 10B-14 gezeigt ist. Es ist zu erkennen, daß das Dokument in einer Gesamtgruppierung angeordnet worden ist, in diesem Fall einer vertikalen Gruppierung, die das ganze Dokument umfaßt. Die Layoutanalyse daraufhin endet mit der Speicherung der Layoutdaten zusammen mit der Speicherung von Koordinaten, die umschreibende Rechtecke für jeden einzelnen Block oder jede einzelne Gruppierung von Blöcken identifizieren, und vorzugsweise auch der Speicherung der Breite und Höhe jedes Blocks. Die Layoutdaten, die für das Dokument gemäß 1 gespeichert werden, sind nachstehend als ein veranschaulichendes Beispiel wiedergegeben:
    Figure 00270001
    wobei "l", "t", "r" und "b" sich auf linke, obere, rechte und untere Blockkoordinaten beziehen, und wobei "w" und "h" sich auf die Breite und Höhe des entsprechenden Blocks beziehen.
  • Ferner wird in diesem Schritt die Blockordnung gemäß der Ordnung der Blöcke in den Layoutdaten bei einem Lesen von oben nach unten bestimmt. Somit ist in dem vorliegenden Beispiel die Blockordnung: BLK1, BLK2, BLK3, BLK4, BLK5, BLK6, BLK7, BLK8, BLK9, BLK10, BLK11, BLK12, BLK13, BLK14, BLK15.
  • [Bestimmen des Blocktyps]
  • Nachstehend ist der in 5 gezeigte Schritt S506 unter Bezugnahme auf 11 ausführlicher erörtert. Allgemein wird gemäß 11A ein Typ für jeden Block bestimmt, indem aufeinanderfolgend eine Folge von Tests ausgeführt wird und entweder der Blocktyp bezeichnet wird, wenn ein Test zuerst bestanden wird (wobei die Bezeichnung davon abhängt, welcher Test bestanden wurde), oder in dem Fall, daß keiner der Tests bestanden wird, der Vorgabeblocktyp bezeichnet wird.
  • Genauer wird es in einem Schritt S1101 bestimmt, ob der derzeitige Block der erste angetroffene Block ist. Es wird ebenfalls bestimmt, ob der derzeitige Block irgendwo die Baumstruktur hinauf in einer horizontalen Gruppierung enthalten ist, und falls dem so ist, ob er der erste Block unter seiner horizontalen Gruppierung der höchsten Ebene ist. Wenn eines der Vorstehenden positiv beantwortet wird, dann wird in einem Schritt S1102 der Block als "Einzelspalte" bezeichnet. Falls dem nicht so ist, geht die Verarbeitung zu einem Schritt S1104 über.
  • In dem Schritt S1104 wird ein vierteiliger Test angewendet. Als erstes wird es bestimmt, ob der vorherige Block ein Nicht-Text-Bild ist. Als zweites wird eine Bestimmung dahingehend ausgeführt, ob die linke Kante des vorherigen Blocks sich links von der linken Kante des derzeitigen Blocks befindet. Für Zwecke der Beschreibung dieser Tests bezieht sich der "derzeitige" Block auf den Block, für den gegenwärtig ein Typ bestimmt wird, und der "vorherige" Block bezieht sich auf den dem derzeitigen Block in der in dem Schritt S505 identifizierten geordneten Liste unmittelbar vorhergehenden Block.
  • Der dritte Teil des Tests des Schritts S1104 besteht darin, es zu bestimmen, ob die rechte Kante des derzeitigen Blocks sich nahe an der linken Kante des nächsten Blocks befindet. Bei dem bevorzugten Ausführungsbeispiel ist die Antwort auf diesen Teil nur dann ja, falls der Abstand zwischen den beiden weniger als 0,01 mal die Breite des ganzen Bilds (d. h. einschließlich aller Blöcke) beträgt. Als viertes wird es bestimmt, ob die Summe der Breite des derzeitigen Blocks und des nächsten Blocks weniger als ein fester Schwellenwert ist. Bei dem bevorzugten Ausführungsbeispiel ist der Schwellenwert gleich 0,6 mal der Breite des ganzen Bilds. Wenn jeder der vorstehenden Tests positiv beantwortet wird, dann wird in einem Schritt S1105 der Block als "Kombinationsspalte" bezeichnet. Falls dem nicht so ist, geht die Verarbeitung zu einem Schritt S1106 über.
  • In dem Schritt S1106 wird ein dreiteiliger Test ausgeführt. In dem ersten Teil wird es bestimmt, ob die linke Kante des vorherigen Blocks sich links von der linken Kante des derzeitigen Blocks befindet. Der zweite Teil bestimmt es, ob der vorherige Block horizontal von dem derzeitigen Block getrennt ist, d. h. ob ein horizontaler Abstand von nicht null zwischen der rechten Kante des vorherigen Blocks und der linken Kante des derzeitigen Blocks vorhanden ist. Der dritte Teil bestimmt es, ob der derzeitige Block zumindest ein zweites Kind einer horizontalen Gruppierung ist. Dieser letzte Teil bestimmt es, ob der derzeitige Block Teil einer horizontalen Gruppierung ist und zumindest als zweites in dem hierarchischen Diagramm hinter einem Element aufgelistet ist, mit dem er z. B. horizontal gruppiert ist (oder der erste Block in einer Gruppierung ist, die zumindest das zweite Kind der horizontalen Gruppierung ist). Wenn die vorstehenden Tests jeweils positiv beantwortet werden, dann wird in einem Schritt S1107 der Block als Mehrfachspalte bezeichnet. Andernfalls geht die Verarbeitung zu einem Schritt S1109 über.
  • In dem Schritt S1109 wird ein dreiteiliger Test angewendet. Als erstes wird es bestimmt, ob die obere Kante des vorherigen Blocks vertikal höher als die obere Kante des derzeitigen Blocks ist, d. h. ob die y-Koordinate der oberen Kante des vorherigen Blocks größer als die y-Koordinate der oberen Kante des derzeitigen Blocks ist. Als zweites wird es bestimmt, ob der derzeitige Block und der nächste Block vertikal getrennt sind, d. h. ob ein vertikaler Abstand von nicht null zwischen dem unteren Ende des vorherigen Blocks und dem oberen Ende des derzeitigen Blocks vorhanden ist. Als drittes wird es bestimmt, ob der derzeitige Block irgendwo die Baumstruktur hinauf in einer horizontalen Gruppierung enthalten ist, oder ob der derzeitige Block vertikal mit dem vorherigen Block gruppiert ist. Wenn alle Teile des vorstehenden Tests positiv beantwortet werden, dann wird in einem Schritt S1110 der Block als "Gemeinschaftsspalte" bezeichnet. Andernfalls wird in einem Schritt S111 der Block als "Einzelspalte" bezeichnet.
  • Nachstehend ist die Anwendung der in 11 gezeigten Verarbeitungsschritte auf das gegenwärtige Beispiel erörtert. Im einzelnen ist BLK1 der erste Block und wird daher in den Schritten S1101 und S1102 als Einzelspalte bezeichnet.
  • BLK2 ist nicht der erste Block und ist auch nicht der erste Block unter seiner horizontalen Gruppierung der höchsten Ebene, so daß der in dem Schritt S1101 bestimmte Test fehlschlägt und der in dem Schritt S1104 bestimmte Test angewendet wird. In diesem Fall schlägt der erste Teil fehl, da BLK1 kein Nicht-Text-Bild ist. Der in dem Schritt S1106 dargelegte Test wird als nächstes angewendet. In diesem Fall schlägt der erste Teil des Tests ebenfalls fehl, da die linke Kante des vorherigen Blocks sich nicht links von der linken Kante des derzeitigen Blocks befindet. Entsprechend wird der in dem Schritt S1109 beschriebene Test als nächstes angewendet. In diesem Fall ist die obere Kante von BLK1 höher als die Kante von BLK2, es ist eine vertikale Trennung zwischen der unteren Kante von BLK1 und der oberen Kante von BLK2 vorhanden, und BLK2 ist vertikal mit BLK1 gruppiert. Entsprechend ist der Test in S1109 erfüllt, und BLK2 wird als Gemeinschaftsspalte bezeichnet.
  • Die Analyse von BLK3 ist mit der von BLK2 identisch, und entsprechend wird BLK3 ebenfalls als Gemeinschaftsspalte bezeichnet.
  • BLK4 ist nicht der erste Block und ist auch nicht der erste Block unter seiner horizontalen Gruppierung der höchsten Ebene, und BLK3 ist kein Nicht-Text-Bild. Entsprechend schlagen die Tests in den Schritten S1101 und S1104 fehl, und der Test in dem Schritt S1106 wird angewendet. In diesem Fall befindet sich die linke Kante von BLK3 links von der linken Kante von BLK4, es ist eine horizontale Trennung zwischen der rechten Kante von BLK3 und der linken Kante von BLK4 vorhanden, und unter Bezugnahme auf die vorstehend dargelegten Layoutdaten kann es gesehen werden, daß BLK4 das zweite Kind einer horizontalen Gruppierung ist. Im einzelnen ist BLK4 horizontal mit der aus den Blöcken 1, 2 und 3 bestehenden vertikalen Gruppe gruppiert. Außerdem ist BLK4 in den Layoutdaten als sich unterhalb der vertikalen Gruppierung befindend gezeigt. Entsprechend ist der Test in dem Schritt S1006 erfüllt, und BLK4 wird als Mehrfachspalte bezeichnet.
  • BLK5 ist nicht der erste Block und ist auch nicht der erste Block unter seiner horizontalen Gruppierung der höchsten Ebene, und BLK4 ist kein Nicht-Text-Bild. Daher geht die Verarbeitung zu dem Schritt S1106 über. Die linke Kante von BLK4 befindet sich nicht links von der linken Kante von BLK5. Entsprechend schlägt dieser Test fehl. Mit Bezug auf den Test in dem Schritt S1109 ist die obere Kante von BLK4 höher als die obere Kante von BLK5, und es ist eine vertikale Trennung zwischen den zwei Blöcken vorhanden. BLK5 befindet sich jedoch nicht unter einer horizontalen Gruppierung und ist nicht vertikal mit BLK4 gruppiert. Daher schlägt dieser Test ebenso fehl. Entsprechend wird BLK5 als Einzelspalte bezeichnet.
  • Die Analyse der Blöcke 6 und 7 ist die gleiche wie die von BLK2, und entsprechend wird jeder derartige Block als Gemeinschaftsspalte bezeichnet.
  • BLK8 ist nicht der erste Block, aber er ist der erste Block seiner horizontalen Gruppierung der höchsten Ebene. Daher wird BLK8 als Einzelspalte bezeichnet.
  • BLK9 ist nicht der erste Block und ist auch nicht der erste Block unter seiner ersten horizontalen Gruppierung. In dem Schritt S1104 ist jedoch der vorherige Block ein Nicht-Text-Bild, die linke Kante des vorherigen Blocks befindet sich links von der linken Kante des derzeitigen Blocks, die zwei Blöcke sind horizontal nahe, und die Summe der Breiten der zwei Blöcke beträgt weniger als 0,60 mal der Breite des ganzen Bilds. Entsprechend wird BLK9 als Kombinationsspalte bezeichnet.
  • Auf ähnliche Weise werden BLK10, BLK12, BLK13 und BLK15 als Gemeinschaftsspalte bezeichnet, da der Test in dem Schritt S1109 erfüllt ist. BLK11 und BLK14 werden als Mehrfachspalte bezeichnet, da der Test in dem Schritt S1106 erfüllt ist.
  • Somit wird jeder der Blöcke wie nachstehend dargelegt bezeichnet:
    BLK1: (EINZELSPALTE)
    BLK2: (GEMEINSCHAFTSSPALTE)
    BLK3: (GEMEINSCHAFTSSPALTE)
    BLK4: (MEHRFACHSPALTE)
    BLK5: (EINZELSPALTE)
    BLK6: (GEMEINSCHAFTSSPALTE)
    BLK7: (GEMEINSCHAFTSSPALTE)
    BLK8: (EINZELSPALTE)
    BLK9: (KOMBINATIONSSPALTE)
    BLK10: (GEMEINSCHAFTSSPALTE)
    BLK11: (MEHRFACHSPALTE)
    BLK12: (GEMEINSCHAFTSSPALTE)
    BLK13: (GEMEINSCHAFTSSPALTE)
    BLK14: (MEHRFACHSPALTE)
    BLK15: (GEMEINSCHAFTSSPALTE)
  • Eine Veranschaulichung dieser Klassifizierungen ist in 12 gezeigt.
  • [Bestimmen von Spaltenspanne und Zeilenspanne]
  • Nachstehend ist der Schritt S507 ausführlich erörtert. Blöcke mit einer Spaltenspanne und Zeilenspanne werden lokalisiert, indem eine verschachtelte horizontal-vertikal-horizontale (Eltern-Kind-Enkel) Struktur gefunden wird, die keinen Großenkel umfaßt, der in der in dem Schritt S505 erzeugten Layoutanalyse als Kombinationsspalte bezeichnet worden ist. Zur Erleichterung der folgenden Erörterung wird auf jedes Element in der Layoutanalyse in Beziehung zu der horizontalen Gruppierung der höheren Ebene in der verschachtelten horizontal-vertikal-horizontalen (Eltern-Kind-Enkel) genetischen hierarchischen Struktur Bezug genommen, wobei eine Baumstrukturterminologie verwendet wird.
  • Sobald eine verschachtelte horizontal-vertikal-horizontale hierarchische Struktur ohne einen Kombinationsspaltengroßenkel lokalisiert wird, geht die Bestimmung von Zeilenspanne und Spaltenspanne weiter wie folgt. Die Spaltenspannenanzahl wird derart bestimmt, daß sie die Anzahl von Kindern des horizontalen Enkels ist. Der Block, dem die Spaltenspannenanzahl zugewiesen wird, wird derart ausgewählt, daß er der erste nicht-horizontale Enkel, der ein horizontales Geschwisterteil aufweist, oder der erste Großenkel, dessen Elternteil ein horizontales Geschwisterteil aufweist, ist. Die Zeilenspannenanzahl wird derart bestimmt, daß sie die Anzahl von horizontalen Enkeln plus eins ist. Der Block, dem die Zeilenspannenanzahl zugewiesen wird, wird derart ausgewählt, daß er das erste nicht-vertikale Kind oder der erste Enkel ohne ein horizontales Geschwisterteil ist. Falls eine Gruppierung dazu ausgewählt wird, die Spaltenspannenanzahl oder die Zeilenspannenanzahl zugewiesen zu bekommen, geht die Zuweisung zu dem ersten Block in der Gruppierung.
  • Der vorstehende Prozeß wird am besten beispielhaft veranschaulicht. Der strukturelle Abschnitt der Layoutanalyse für das in 1 gezeigte Dokument ist nachstehend wiedergegeben, wobei Gruppierungen und Blöcke zur leichten Bezugnahme numeriert sind (beginnend mit der Nummer 101).
  • Figure 00360001
  • Da die horizontal-vertikal-horizontale (Eltern-Kind-Enkel) Struktur mit den Nummern 115–117 einen Großenkel mit einer Kombinationsspaltenbezeichnung (BLK9) aufweist, besteht die einzige horizontal-vertikal-horizontale Struktur ohne einen Kombinationsspaltengroßenkel in der Layoutanalyse aus den Nummern 113–115. Der horizontale Enkel ist mit 115 numeriert, und seine einzigen Kinder sind 116 und 121. Daher ist die Spaltenspannenanzahl zwei. Die Enkel der horizontalen Gruppierung 113 sind die horizontale Gruppierung 115 und die vertikale Gruppierung 122. Da BLK12 (123) der erste Großenkel ist, dessen Elternteil (122) ein horizontales Geschwisterteil (115) aufweist, wird BLK12 die Spaltenspannenanzahl zugewiesen.
  • Mit Bezug auf die Zeilenspanne ist lediglich ein horizontaler Enkel vorhanden, die Gruppierung 115. Daher ist die Zeilenspannenanzahl gleich zwei. Da BLK14 (126) der erste Enkel ist, der kein horizontales Geschwisterteil aufweist, wird BLK14 die Zeilenspannenanzahl zugewiesen.
  • Folglich wird BLK12 eine Spaltenspannenanzahl von 2 zugewiesen, und BLK14 wird eine Zeilenspannenanzahl von 2 zugewiesen.
  • [Blockneuordnung]
  • Nachstehend ist der Schritt S509 unter Bezugnahme auf 11B erörtert. Wie es in 11B gezeigt ist, können zwei allgemeine Situationen auftreten, in denen die in dem Schritt S505 erhaltene Blockordnung neu angeordnet werden muß, um der Weise, in der HTML Tabellendaten verarbeitet (d. h. sequentiell Zeile für Zeile nach unten), entgegenzukommen. In jeder befindet sich ein Zeilenspannenblock rechts von einem Spaltenspannenblock und horizontal an diesen angrenzend.
  • Mit Bezug auf 11B ist der erste Fall vorhanden, wenn Blöcke angeordnet sind wie beispielsweise Blöcke 141144, wobei die obere Kante des Zeilenspannenblocks 144 sich oberhalb der oberen Kante des Spaltenspannenblocks 143 befindet und der Schritt S505 die Gruppe von Blöcken sequentiell geordnet hat als: 141, 142, 143 und 144. In diesem Fall wird die Ordnung der Blöcke 143 und 144 gewechselt, was zu einer endgültigen Ordnung führt von: 141, 142, 144 und 143.
  • Auf ähnliche Weise ist der zweite Fall vorhanden, wenn Blöcke angeordnet sind wie beispielsweise Blöcke 146149, wobei die obere Kante des Zeilenspannenblocks 149 sich oberhalb der oberen Kanten der Blöcke 147 und 148 befindet und der Schritt S505 die Gruppe von Blöcken sequentiell geordnet hat als: 146, 147, 148 und 149. In diesem Fall wird die Ordnung des Blocks 149 derart in der Position nach oben bewegt, daß er vor dem Block 147 plaziert ist, was zu einer endgültigen Ordnung führt von: 146, 149, 147 und 148.
  • Das Vorstehende ist lediglich veranschaulichend für die zwei allgemeinen Fälle. Es ist zu beachten, daß die Anzahl von Blöcken variieren kann und die gezeigten Blöcke mehr als einen Block darstellen können. Die Schlüsselelemente dieses Neuordnungsschritts sind: (1) das Vorhandensein eines Zeilenspannenblocks rechts von einem Spaltenspannenblock und horizontal an diesen angrenzend, und (2) ob der Spaltenspannenblock sich in der ersten oder zweiten Zeile befindet, die der Zeilenspannenblock überspannt. Obwohl das Vorstehende die zwei Fälle beschreibt, in denen die Zeilenspanne zwei Zeilen beträgt, kann das Konzept außerdem leicht auf Zeilenspannen von mehr als zwei erweitert werden.
  • Das Vorstehende auf das das in 1 gezeigte Dokument betreffende gegenwärtige Beispiel anwendend tritt ein Zeilenbruch zwischen BLK10 und BLK12 und daraufhin ein weiterer nach BLK12 auf. Entsprechend stellt dies ein Beispiel für den vorstehend beschriebenen ersten Fall dar, wobei BLK10 das Äquivalent des Blocks 141 ist, BLK11 das Äquivalent des Blocks 142 ist, BLK12 (der Spaltenspannenblock) und BLK13 zusammen das Äquivalent des Blocks 143 sind, und BLK14 (der Zeilenspannenblock) und BLK15 zusammen das Äquivalent des Blocks 144 sind. Entsprechend werden BLK14 und BLK15 in der Ordnung nach oben vor BLK12 und BLK13 bewegt. Die endgültige Ordnung ist somit: BLK1, BLK2, BLK3, BLK4, BLK5, BLK6, BLK7, BLK8, BLK9, BLK10, BLK11, BLK14, BLK15, BLK12, BLK13.
  • [HTML-Formatierung]
  • Nachstehend ist der in 5 gezeigte Schritt S510 unter Bezugnahme auf 13A bis 13D ausführlich erörtert. Allgemein wird gemäß 13 zuerst ein HTML-Dateikopf eingefügt. Daraufhin wird für jeden Block eine Verarbeitung gemäß dem in dem Schritt S506 bestimmten Blocktyp ausgeführt, wobei jedem Blocktyp ein anderer Satz von Verarbeitungsschritten zugewiesen ist. Nachdem alle Blöcke verarbeitet worden sind, werden schließlich Ende-der-Datei-Codes eingefügt.
  • Insbesondere werden in einem Schritt S1301 die folgenden HTML-Dateikopfcodes eingefügt:
    "<HTML><HEAD><TITLE>Titel</TITLE></HEAD><BODY><BODY GCOLOR="#FFFFFF"><CENTER>", wobei "Titel" der Titel der Datei ist.
  • In einem Schritt S1302 wird der erste Block ausgewählt.
  • In einem Schritt S1304 wird es bestimmt, ob der Blocktyp für den derzeitigen Block Einzelspalte ist. Wenn dies so ist, dann wird in einem Schritt S1305 eine Einzelspaltenverarbeitung gemäß in 13B gezeigten Schritten ausgeführt, und daraufhin geht die Verarbeitung zu einem Schritt S1313 über. Falls dem nicht so ist, geht die Verarbeitung zu einem Schritt S1306 über.
  • In dem Schritt S1306 wird es bestimmt, ob der Blocktyp Mehrfachspalte ist. Wenn dem so ist, dann wird in einem Schritt S1307 eine Mehrfachspaltenverarbeitung gemäß den in 13C gezeigten Schritten ausgeführt, und daraufhin geht die Verarbeitung zu dem Schritt S1313 über. Falls dem nicht so ist, geht die Verarbeitung zu einem Schritt S1309 über.
  • In dem Schritt S1309 wird es bestimmt, ob der Blocktyp Gemeinschaftsspalte ist. Wenn dem so ist, dann wird in einem Schritt S1310 eine Gemeinschaftsspaltenverarbeitung gemäß den in 13D gezeigten Schritten ausgeführt, und daraufhin geht die Verarbeitung zu dem Schritt S1313 über. Wenn dem nicht so ist, dann muß der Blocktyp Kombinationsspalte sein. Da für Kombinationsspalte keine zusätzlichen Codes eingefügt werden, geht die Verarbeitung einfach unmittelbar zu dem Schritt S1313 über.
  • In dem Schritt S1313 wird der Block in die HTML-Datei eingefügt. Typischerweise werden entweder die Inhalte des Blocks in die HTML-Datei eingefügt (für Textblöcke), oder es wird ein Verweis auf eine die relevanten Daten enthaltende Datei eingefügt (für Grafik und Bitmaskenbilder).
  • In dem Schritt S1311 wird es bestimmt, ob der derzeitige Block der letzte Block ist. Falls dem nicht so ist, wird in einem Schritt S1312 der nächste Block ausgewählt, und die Verarbeitung geht zu dem Schritt S1304 über. Wenn der derzeitige Block der letzte Block ist, dann werden in einem Schritt S1314 die folgenden Ende-der-Datei-HTML-Codes eingefügt: "</TABLE></CENTER></BODY></HTML>".
  • Nachstehend ist die Einzelspaltenverarbeitung gemäß dem Schritt S1305 unter Bezugnahme auf 13B ausführlicher erörtert. Im einzelnen wird es in einem Schritt S1315 bestimmt, ob die Datei derzeit in einer Tabelle ist. Wenn sie es ist, dann wird in einem Schritt S1316 der Ende-HTML-Tabellencode ("</TABLE>") eingefügt, und die Verarbeitung geht zu einem Schritt S1317 über. Andernfalls geht die Verarbeitung zu dem Schritt S1317 über, ohne den Code einzufügen.
  • In dem Schritt S1317 wird der folgende Tabellendefinitionscode in die Datei eingefügt: "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=7 WIDTH=w>", wobei BORDER, CELLSPACING, CELLPADDING und WIDTH Attribute des Identifizierungskennzeichens <TABLE> sind, und wobei w gleich der Breite des ganzen Bilds mal 72 und geteilt durch die Anzahl von Punkten pro Zoll bzw. Punkten pro 2,54 cm in dem Bild ist.
  • In einem Schritt S1319 wird es bestimmt, ob die Zeilenspanne für den Block (die in dem Schritt S507 bestimmt wurde) größer als eins ist. Falls sie es ist, wird der folgende Code in die HTML-Datei eingefügt "<TR><TD VALIGN=TOP ROWSPAN=n>", wobei n die in dem Schritt S507 bestimmte Zeilenspannenanzahl ist. Andernfalls wird es in einem Schritt S1321 bestimmt, ob die Spaltenspanne größer als eins ist. Wenn sie es ist, dann wird in einem Schritt S1322 der folgende HTML-Code in die HTML-Datei eingefügt: "<TR><TD VALIGN=TOP COLSPAN=m>", wobei m die in dem Schritt S507 bestimmte Spaltenspannenanzahl ist. Andernfalls wird in einem Schritt S1324 der folgende Code in die HTML-Datei eingefügt: "<TR><TD VALIGN=TOP>".
  • Nachstehend ist die Mehrfachspaltenverarbeitung gemäß dem Schritt S1307 unter Bezugnahme auf 13C ausführlicher erörtert. Im einzelnen wird es in einem Schritt S1325 bestimmt, ob die Zeilenspanne größer als eins ist. Wenn sie es ist, dann wird der folgende HTML-Code eingefügt: "<TD VALIGN=TOP ROWSPAN=n>". Andernfalls wird es in einem Schritt S1327 bestimmt, ob die Spaltenspanne für den derzeitigen Block größer als eins ist. Wenn sie es ist, dann wird in einem Schritt S1329 der folgende HTML-Code in die HTML-Datei eingefügt: "<TD VALIGN=TOP COLSPAN=m>". Andernfalls wird in einem Schritt S1330 der folgende HTML-Code eingefügt: "<TD VALIGN=TOP>".
  • Nachstehend ist die Gemeinschaftsspaltenverarbeitung gemäß dem Schritt S1310 unter Bezugnahme auf 13D ausführlich erörtert. Im einzelnen wird es in einem Schritt S1331 bestimmt, ob die Zeilenspanne des derzeitigen Blocks größer als eins ist. Wenn sie es ist, dann wird in einem Schritt S1332 der folgende HTML-Code eingefügt: "<TR><TD VALIGN=TOP ROWSPAN=n>". Andernfalls wird es in einem Schritt S1334 bestimmt, ob die Spaltenspanne für den derzeitigen Block größer als eins ist. Wenn sie es ist, dann wird in einem Schritt S1335 der folgende HTML-Code eingefügt: "<TR><TD VALIGN=TOP COLSPAN=m>". Andernfalls wird es in einem Schritt S1336 bestimmt, ob die Anzahl von Zeilen in dem Block (die in dem Schritt S504 bestimmt wurde) eins ist. Wenn sie es ist, dann wird in einem Schritt S1337 der folgende HTML-Code eingefügt: "<BR>". Andernfalls wird in einem Schritt S1339 der folgende HTML-Code eingefügt: "<P>".
  • Nun wird der Schritt S510 auf das gegenwärtige Beispiel angewendet. Zuerst wird der HTML-Dateikopf eingefügt, wie es in dem Schritt S1301 gezeigt ist. Als nächstes wird jeder der Blöcke 1 bis 15 aufeinanderfolgend verarbeitet, um den Körper der HTML-Datei aufzubauen.
  • Im einzelnen ist BLK1 eine Einzelspalte ohne Zeilenspanne oder Spaltenspanne. Entsprechend wird der HTML-Code in den Schritten S1317 und S1324 bestimmt. Unmittelbar nach der Einfügung des Codes wird BLK1 (oder ein Verweis darauf) in die HTML-Datei eingefügt. BLK2 ist eine Gemeinschaftsspalte ohne Spaltenspanne oder Zeilenspanne und mit dem Inhalt einer Zeile von Text. Entsprechend wird der Code <BR> eingefügt, und diesem folgt unmittelbar BLK2. BLK3 weist die gleiche Klassifizierung wie BLK2 auf, und ihm geht somit der gleiche HTML-Code voraus. BLK4 ist eine Mehrfachspalte ohne Zeilenspanne oder Spaltenspanne. Entsprechend wird der HTML-Code durch den Schritt S1330 bestimmt.
  • Auf diese Art und Weise fortfahrend wird schließlich die Kombinationsspalte BLK9 erreicht. Entsprechend geht BLK9 kein HTML-Code voraus. Noch weiter fortfahrend wird BLK14 erreicht, bei dem es sich um eine Mehrfachspalte mit einer Zeilenspanne von 2 handelt. Entsprechend wird der HTML-Code durch den Schritt S1326 bestimmt. Auf ähnliche Weise handelt es sich bei BLK12 um eine Gemeinschaftsspalte mit einer Spaltenspanne von 2.
  • Entsprechend wird der HTML-Code durch den Schritt S1335 bestimmt.
  • Wenn alle Blöcke verarbeitet worden sind, werden die in dem Schritt S1314 bestimmten Ende-der-Datei-Codes eingefügt, und die HTML-Datei ist vollständig. Der sich ergebende Code ist nachstehend dargelegt:
    Figure 00440001
  • 14 veranschaulicht das Erscheinungsbild einer gemäß dem vorstehenden HTML-Code erzeugten Web-Seite. Wie es aus 14 ersichtlich ist, ist ein Titel 201 in der oberen linken Ecke richtig plaziert, und ein Artikeltyp 202 ist sehr nahe an der oberen rechten Ecke plaziert. Spalten 204, 205 und 206 sind beibehalten worden und erscheinen dem Layout des ursprünglichen Dokuments sehr ähnlich. Ferner befindet sich eine Fußzeile 209 in der unteren rechten Ecke, und ein Bild 207 befindet sich in der unteren linken Ecke unterhalb der Spalten 204 und 205 und links von der Spalte 206.
  • Somit kann die erzeugte HTML-Datei zur Erzeugung einer Seite verwendet werden, die dem in dem ursprünglichen Dokument dargestellten Layout dicht folgt.
  • Die Erfindung ist mit Bezug auf spezielle veranschaulichende Ausführungsbeispiele beschrieben. Es ist selbstverständlich, daß die Erfindung nicht auf die vorstehend beschriebenen Ausführungsbeispiele und Modifikationen davon beschränkt ist und daß durch den Durchschnittsfachmann verschiedene Änderungen und Modifikationen ausgebildet werden können.

Claims (15)

  1. Verfahren zur Erzeugung von Layoutdaten aus sich aus horizontal und vertikal angeordneten Blöcken zusammensetzenden Blockdaten, mit: einem Vertikalbestimmungsschritt (S902) des Bestimmens, ob eine Kombination von vertikal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt; einem Vertikalkombinationsschritt (S903) des Kombinierens der Kombination von vertikal angeordneten Blöcken in dem Fall, in dem es der Vertikalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist; wobei das Verfahren die nachfolgenden Schritte umfaßt: einen Horizontalbestimmungsschritt (S906) des Bestimmens, ob eine Kombination von horizontal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt; einen Horizontalkombinationsschritt (S907) des Kombinierens der Kombination von horizontal angeordneten Blöcken in einem Fall, in dem es der Horizontalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist; und einen Erzeugungsschritt (S505) des Erzeugens von Layoutdaten auf der Grundlage der in dem Vertikalkombinationsschritt und dem Horizontalkombinationsschritt ausgebildeten Kombinationen.
  2. Verfahren nach Anspruch 1, wobei der Vertikalbestimmungsschritt für alle zulässigen Kombinationen von vertikal angeordneten Blöcken ausgeführt wird, bevor irgendwelche Bestimmungen in dem Horizontalbestimmungsschritt ausgebildet werden.
  3. Verfahren nach Anspruch 2, wobei die Blockdaten Koordinatendaten für jeden Block umfassen, und wobei die Zulässigkeit der Kombination auf der Grundlage eines Vergleichs von Koordinatendaten für jeweilige Blöcke bestimmt wird.
  4. Verfahren nach Anspruch 1, ferner mit dem Schritt des Wiederholens des Vertikalbestimmungsschritts, nachdem alle zulässigen Kombinationen von horizontal angeordneten Blöcken in dem Horizontalbestimmungsschritt getestet sind.
  5. Verfahren nach Anspruch 4, wobei die Blockdaten Koordinatendaten für jeden Block umfassen, und wobei die Zulässigkeit der Kombination auf der Grundlage eines Vergleichs von Koordinatendaten für jeweilige Blöcke bestimmt wird.
  6. Vorrichtung zur Erzeugung von Layoutdaten aus sich aus horizontal und vertikal angeordneten Blöcken zusammensetzenden Blockdaten, mit: einer Erhalteinrichtung zum Erhalten der Blockdaten (S501); und einem Speicher zum Speichern von durch eine Verarbeitungseinrichtung ausführbaren Prozeßschritten; einer Verarbeitungseinrichtung, die von der Vorrichtung verwendet die in der Verarbeitungseinrichtung gespeicherten Prozeßschritte ausführt, um es zu bestimmen, ob eine Kombination von vertikal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt (S902), um die Kombination von vertikal angeordneten Blöcken in einem Fall zu kombinieren, in dem es der Vertikalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist (S903); wobei die Verarbeitungseinrichtung von der Vorrichtung verwendet nachfolgend die weiteren in der Verarbeitungseinrichtung gespeicherten Prozeßschritte ausführt, um es zu bestimmen, ob eine Kombination von horizontal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt (5906), um die Kombination von horizontal angeordneten Blöcken in einem Fall zu kombinieren, in dem es der Horizontalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist (S907), und um auf der Grundlage der in dem Vertikalkombinationsschritt und dem Horizontalkombinationsschritt ausgebildeten Kombinationen Layoutdaten zu erzeugen (S505).
  7. Vorrichtung nach Anspruch 6, wobei es die Verarbeitungseinrichtung für alle zulässigen Kombinationen von vertikal angeordneten Blöcken bestimmt, ob eine Kombination von vertikal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt, bevor durch die Verarbeitungseinrichtung irgendwelche Bestimmungen bezüglich einer Überlappung von horizontal angeordneten Blöcken ausgebildet werden.
  8. Vorrichtung nach Anspruch 7, wobei die Blockdaten Koordinatendaten für jeden Block umfassen, und wobei die Zulässigkeit der Kombination auf der Grundlage eines Vergleichs von Koordinatendaten für jeweilige Blöcke bestimmt wird.
  9. Vorrichtung nach Anspruch 7, wobei es die Verarbeitungseinrichtung bestimmt, ob eine Kombination von vertikal angeordneten Blöcken über irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt, nachdem alle zulässigen Kombinationen von horizontal angeordneten Blöcken getestet sind.
  10. Vorrichtung nach Anspruch 9, wobei die Blockdaten Koordinatendaten für jeden Block umfassen, und wobei die Zulässigkeit der Kombination auf der Grundlage eines Vergleichs von Koordinatendaten für jeweilige Blöcke bestimmt wird.
  11. Durch einen Computer ausführbare Prozeßschritte, die auf einem durch einen Computer lesbaren Träger gespeichert sind, wobei die durch einen Computer ausführbaren Prozeßschritte zur Erzeugung von Layoutdaten aus sich aus horizontal und vertikal angeordneten Blöcken zusammensetzenden Blockdaten dienen, wobei die durch einen Computer ausführbaren Prozeßschritte umfassen: einen Vertikalbestimmungsschritt (S902) zum Bestimmen, ob eine Kombination von vertikal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt; einen Vertikalkombinationsschritt (S903) zum Kombinieren der Kombination von vertikal angeordneten Blöcken in einem Fall, in dem es der Vertikalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist; einen nachfolgenden Horizontalbestimmungsschritt (S906) zum Bestimmen, ob eine Kombination von horizontal angeordneten Blöcken auf irgendeinen anderen der horizontal und vertikal angeordneten Blöcke überlappt; einen Horizontalkombinationsschritt (S907) zum Kombinieren der Kombination von horizontal angeordneten Blöcken in einem Fall, in dem es der Horizontalbestimmungsschritt bestimmt, daß keine Überlappung vorhanden ist; und einen Erzeugungsschritt (S505) zum Erzeugen von Layoutdaten auf der Grundlage der in dem Vertikalkombinationsschritt und dem Horizontalkombinationsschritt ausgebildeten Kombinationen.
  12. Durch einen Computer ausführbare Prozeßschritte nach Anspruch 11, wobei der Vertikalbestimmungsschritt für alle zulässigen Kombinationen von vertikal angeordneten Blöcken ausgeführt wird, bevor irgendwelche Bestimmungen in dem Horizontalbestimmungsschritt ausgebildet werden.
  13. Durch einen Computer ausführbare Prozeßschritte nach Anspruch 12, wobei die Blockdaten Koordinatendaten für jeden Block umfassen, und wobei die Zulässigkeit der Kombination auf der Grundlage eines Vergleichs von Koordinatendaten für jeweilige Blöcke bestimmt wird.
  14. Durch einen Computer ausführbare Prozeßschritte nach Anspruch 12, ferner mit einem Wiederholungsschritt zum Wiederholen des Vertikalbestimmungsschritts, nachdem alle zulässigen Kombinationen von horizontal angeordneten Blöcken in dem Horizontalbestimmungsschritt getestet sind.
  15. Durch einen Computer ausführbare Prozeßschritte nach Anspruch 14, wobei die Blockdaten Koordinatendaten für jeden Block umfassen, und wobei die Zulässigkeit der Kombination auf der Grundlage eines Vergleichs von Koordinatendaten für jeweilige Blöcke bestimmt wird.
DE69724557T 1996-11-18 1997-06-24 Dokumentenanalyse Expired - Lifetime DE69724557T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/751,676 US5893127A (en) 1996-11-18 1996-11-18 Generator for document with HTML tagged table having data elements which preserve layout relationships of information in bitmap image of original document
US751676 1996-11-18

Publications (2)

Publication Number Publication Date
DE69724557D1 DE69724557D1 (de) 2003-10-09
DE69724557T2 true DE69724557T2 (de) 2004-08-05

Family

ID=25023011

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69724557T Expired - Lifetime DE69724557T2 (de) 1996-11-18 1997-06-24 Dokumentenanalyse

Country Status (4)

Country Link
US (1) US5893127A (de)
EP (1) EP0843276B1 (de)
JP (1) JP3976847B2 (de)
DE (1) DE69724557T2 (de)

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449377B1 (en) * 1995-05-08 2002-09-10 Digimarc Corporation Methods and systems for watermark processing of line art images
US6088708A (en) * 1997-01-31 2000-07-11 Microsoft Corporation System and method for creating an online table from a layout of objects
US6122657A (en) * 1997-02-04 2000-09-19 Networks Associates, Inc. Internet computer system with methods for dynamic filtering of hypertext tags and content
JPH10228473A (ja) * 1997-02-13 1998-08-25 Ricoh Co Ltd 文書画像処理方法、文書画像処理装置および記憶媒体
US7246147B2 (en) * 1997-08-07 2007-07-17 Canon Kabushiki Kaisha Upload and retrieval by an image device of a scanned image to and from a web file server
US6148330A (en) * 1997-11-17 2000-11-14 Netscape Communications Corp. System and method for automatically generating content for a network channel
US6232967B1 (en) * 1997-11-24 2001-05-15 International Business Machines Corporation Web browser column control
US6754900B1 (en) * 1997-11-24 2004-06-22 International Business Machines Corporation System for providing web browser access to an operating system desktop
CN1269116A (zh) * 1998-05-13 2000-10-04 松下电器产业株式会社 网络控制系统、控制器及设备
US6374273B1 (en) * 1998-06-05 2002-04-16 International Business Machines Corporation Reformatting a first single-column markup document into a multi-column document, and formatting second markup document in the background, while displaying the first reformatted document
AU5211599A (en) * 1998-07-13 2000-02-01 Netpost, Inc. Method for rapid transmission of publication
KR20000009862A (ko) * 1998-07-29 2000-02-15 윤종용 에이치티엠엘 문서 교환을 가능하게 하는 시스템 및 방법
US6230174B1 (en) * 1998-09-11 2001-05-08 Adobe Systems Incorporated Method of generating a markup language document containing image slices
US7478142B1 (en) 1998-09-29 2009-01-13 Netscape Communications Corporation Self-contained applications that are applied to be received by and processed within a browser environment and that have a first package that includes a manifest file and an archive of files including a markup language file and second package
US7213202B1 (en) * 1998-12-11 2007-05-01 Microsoft Corporation Simplified design for HTML
US6779153B1 (en) 1998-12-11 2004-08-17 Microsoft Corporation Creation of web pages through synchronization
US6377928B1 (en) * 1999-03-31 2002-04-23 Sony Corporation Voice recognition for animated agent-based navigation
US6880122B1 (en) * 1999-05-13 2005-04-12 Hewlett-Packard Development Company, L.P. Segmenting a document into regions associated with a data type, and assigning pipelines to process such regions
US6526398B2 (en) * 1999-05-28 2003-02-25 Ricoh Co., Ltd. Generating labels indicating gaps in retrieval of electronic documents
JP4532622B2 (ja) * 1999-05-31 2010-08-25 キヤノン株式会社 データ通信装置及びその方法
US6539420B1 (en) 1999-06-04 2003-03-25 International Business Machines Corporation Distribution mechanism for reuse of web based image data
US6565609B1 (en) * 1999-06-15 2003-05-20 Microsoft Corporation Translating data into HTML while retaining formatting and functionality for returning the translated data to a parent application
US6854085B1 (en) 1999-07-15 2005-02-08 Netscape Communicatons Corporation System and method for automatically pre-setting form field values
US6547830B1 (en) * 1999-08-13 2003-04-15 Pixo, Inc. Methods and apparatuses for display and traversing of links in page character array
US7203838B1 (en) 1999-09-09 2007-04-10 American Express Travel Related Services Company, Inc. System and method for authenticating a web page
US9843447B1 (en) 1999-09-09 2017-12-12 Secure Axcess Llc Authenticating electronic content
AU7116800A (en) * 1999-09-09 2001-04-10 American Express Travel Related Services Company, Inc. System and method for authenticating a web page
US6792575B1 (en) 1999-10-21 2004-09-14 Equilibrium Technologies Automated processing and delivery of media to web servers
US6823330B1 (en) 1999-11-16 2004-11-23 Gateway, Inc. Site home navigation control
JP4320491B2 (ja) * 1999-11-18 2009-08-26 ソニー株式会社 文書処理システム、端末装置、文書提供装置、文書処理方法、記録媒体
US6639611B1 (en) * 1999-12-15 2003-10-28 Sun Microsystems, Inc. System and method for efficient layout of a display table
US6690396B1 (en) * 1999-12-27 2004-02-10 Gateway, Inc. Scannable design of an executable
US20020033837A1 (en) * 2000-01-10 2002-03-21 Munro James A. Multiple-image viewer
EP1252603A1 (de) * 2000-02-01 2002-10-30 Scansoft, Inc. Automatische konvertierung von statischen dokumenten zu dynamischen dokumenten
US6640098B1 (en) * 2000-02-14 2003-10-28 Action Engine Corporation System for obtaining service-related information for local interactive wireless devices
US6862616B1 (en) 2000-03-20 2005-03-01 Netscape Communications Corp. System and method for facilitating distributed server administration of server systems that are scalable and version independent
US7685431B1 (en) 2000-03-20 2010-03-23 Netscape Communications Corporation System and method for determining relative strength and crackability of a user's security password in real time
US7003554B1 (en) 2000-03-20 2006-02-21 Netscape Communications Corp. System and method for downloading portions of a remotely located network object to produce a completely downloaded local copy of the network object
US6912689B1 (en) * 2000-04-17 2005-06-28 Micron Technology, Inc. Method and apparatus for facilitating substitution of digital images with line drawings
JP3747737B2 (ja) * 2000-05-10 2006-02-22 日本電気株式会社 広域精細画像生成方法及びシステム並びにコンピュータ可読記録媒体
US7024621B1 (en) * 2000-05-19 2006-04-04 Renderx Methods and systems for rendering electronic data
US7454695B1 (en) 2000-05-19 2008-11-18 Renderx, Inc. Methods for rendering tables
US6971062B1 (en) 2000-05-19 2005-11-29 Renderx Methods for rendering footnotes
US9436667B2 (en) 2000-05-19 2016-09-06 Renderx, Inc. Techniques for rendering media as layers
US7600183B2 (en) * 2000-06-16 2009-10-06 Olive Software Inc. System and method for data publication through web pages
US7418653B1 (en) * 2000-11-17 2008-08-26 Olive Software Inc. System and method for data publication through web pages
US6766362B1 (en) * 2000-07-28 2004-07-20 Seiko Epson Corporation Providing a network-based personalized newspaper with personalized content and layout
US6915484B1 (en) * 2000-08-09 2005-07-05 Adobe Systems Incorporated Text reflow in a structured document
US7028255B1 (en) * 2000-08-14 2006-04-11 Adobe Systems Incorporated Self-sizing object placement
SG96567A1 (en) * 2000-09-16 2003-06-16 Sang Nila Comm Method for preparing a document for electronic publication
US6765589B1 (en) * 2000-11-16 2004-07-20 Adobe Systems Incorporated Brush for warping and water reflection effects
AU2002233991A1 (en) * 2000-12-06 2002-06-18 American Express Travel Related Services Company, Inc. Layout generator system and method
US7054871B2 (en) * 2000-12-11 2006-05-30 Lucent Technologies Inc. Method for identifying and using table structures
US20020089549A1 (en) * 2001-01-09 2002-07-11 Munro James A. Image having a hierarchical structure
JP3475186B2 (ja) * 2001-03-21 2003-12-08 株式会社ニチベイ ブラインド、ブラインド用スラット、その製造方法及びその成形加工機
GB0110326D0 (en) 2001-04-27 2001-06-20 Ibm Method and apparatus for interoperation between legacy software and screen reader programs
WO2002088979A1 (en) * 2001-05-02 2002-11-07 Bitstream Inc. Methods and systems for displaying media in scaled manner and/or in orientation
US20040148568A1 (en) * 2001-06-13 2004-07-29 Springer Timothy Stephen Checker and fixer algorithms for accessibility standards
US7099891B2 (en) * 2001-06-15 2006-08-29 International Business Machines Corporation Method for allowing simple interoperation between backend database systems
US7458017B2 (en) * 2001-06-26 2008-11-25 Microsoft Corporation Function-based object model for use in website adaptation
JP2003085091A (ja) * 2001-09-10 2003-03-20 Hibiya Kadan:Kk ウエブページ管理支援システム
JP2003122658A (ja) * 2001-10-11 2003-04-25 Hitachi Ltd データ配送方法
US7373597B2 (en) * 2001-10-31 2008-05-13 University Of Medicine & Dentistry Of New Jersey Conversion of text data into a hypertext markup language
US7093001B2 (en) 2001-11-26 2006-08-15 Microsoft Corporation Methods and systems for adaptive delivery of multimedia contents
US6948132B2 (en) * 2001-12-12 2005-09-20 International Business Machines Corporation Method for mapping screen display objects with spatial coordinates into an HTML table
US7289132B1 (en) * 2003-12-19 2007-10-30 Apple Inc. Method and apparatus for image acquisition, organization, manipulation, and publication
US20040205568A1 (en) * 2002-03-01 2004-10-14 Breuel Thomas M. Method and system for document image layout deconstruction and redisplay system
US20030217076A1 (en) * 2002-05-15 2003-11-20 Heptinstall Christian Elliot System and method for rapid generation of one or more autonomous websites
US7415452B1 (en) 2002-06-21 2008-08-19 Adobe Systems Incorporated Traversing a hierarchical layout template
US7020667B2 (en) * 2002-07-18 2006-03-28 International Business Machines Corporation System and method for data retrieval and collection in a structured format
US20060104511A1 (en) * 2002-08-20 2006-05-18 Guo Jinhong K Method, system and apparatus for generating structured document files
JP4462819B2 (ja) * 2002-09-26 2010-05-12 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US7203901B2 (en) 2002-11-27 2007-04-10 Microsoft Corporation Small form factor web browsing
JP3888306B2 (ja) * 2002-12-27 2007-02-28 ブラザー工業株式会社 データ処理装置
US20040134369A1 (en) * 2003-01-13 2004-07-15 Richard East Apparatus and method of printing a document having variable text data and graphics data
US7272258B2 (en) 2003-01-29 2007-09-18 Ricoh Co., Ltd. Reformatting documents using document analysis information
US7149967B2 (en) * 2003-03-27 2006-12-12 Microsoft Corporation Method and system for creating a table version of a document
US20040194009A1 (en) * 2003-03-27 2004-09-30 Lacomb Christina Automated understanding, extraction and structured reformatting of information in electronic files
US7350142B2 (en) * 2003-03-27 2008-03-25 Microsoft Corporation Method and system for creating a table version of a document
US7305612B2 (en) * 2003-03-31 2007-12-04 Siemens Corporate Research, Inc. Systems and methods for automatic form segmentation for raster-based passive electronic documents
US7089492B2 (en) * 2003-04-03 2006-08-08 International Business Machines Corporation Automated conversion of CALS-compatible tables to accessible HTML tables
US7421649B1 (en) * 2003-04-28 2008-09-02 Adobe Systems Incorporated Enhanced visual table editing
JP4014160B2 (ja) * 2003-05-30 2007-11-28 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、プログラム、及び記録媒体
JP2005032230A (ja) * 2003-06-18 2005-02-03 Ricoh Co Ltd 電子装置及びWebページ生成方法
US20050050452A1 (en) * 2003-08-27 2005-03-03 Weitzel Wade D. Systems and methods for generating an electronically publishable document
US7424672B2 (en) * 2003-10-03 2008-09-09 Hewlett-Packard Development Company, L.P. System and method of specifying image document layout definition
JP2005352696A (ja) * 2004-06-09 2005-12-22 Canon Inc 画像処理装置及びその制御方法、プログラム
WO2006003591A2 (en) * 2004-06-29 2006-01-12 Koninklijke Philips Electronics, N.V. Discontinuous zoom
US7275211B2 (en) * 2004-07-02 2007-09-25 Cognos Incorporated Rendering page sets
US7913163B1 (en) * 2004-09-22 2011-03-22 Google Inc. Determining semantically distinct regions of a document
US7685510B2 (en) 2004-12-23 2010-03-23 Sap Ag System and method for grouping data
JP2006195818A (ja) * 2005-01-14 2006-07-27 Canon Inc 画像処理装置およびその方法、および画像処理システム
US8245131B2 (en) * 2005-02-10 2012-08-14 Hewlett-Packard Development Company, L.P. Constraining layout variations for accommodating variable content in electronic documents
US7865353B2 (en) * 2005-03-22 2011-01-04 Fuji Xerox Co., Ltd. Translation device, image processing device, translation method, and recording medium
US8307336B1 (en) * 2005-03-30 2012-11-06 Oracle America, Inc. Mechanism for enabling a set of output from a functional component to be presented on different types of clients
US7555711B2 (en) * 2005-06-24 2009-06-30 Hewlett-Packard Development Company, L.P. Generating a text layout boundary from a text block in an electronic document
US7796837B2 (en) * 2005-09-22 2010-09-14 Google Inc. Processing an image map for display on computing device
JP2007094490A (ja) * 2005-09-27 2007-04-12 Oki Electric Ind Co Ltd 画面変換システム,画面変換装置,画面変換方法およびコンピュータプログラム
WO2007048444A1 (en) * 2005-10-25 2007-05-03 Hewlett-Packard Development Company, L.P. Method of identifying multi zone block edges in an electronic document
JP4944434B2 (ja) * 2005-12-06 2012-05-30 キヤノン株式会社 レイアウト方法及びプログラム
US7761789B2 (en) 2006-01-13 2010-07-20 Ricoh Company, Ltd. Methods for computing a navigation path
US20070204220A1 (en) * 2006-02-27 2007-08-30 Microsoft Corporation Re-layout of network content
US7788579B2 (en) 2006-03-06 2010-08-31 Ricoh Co., Ltd. Automated document layout design
US20070283274A1 (en) * 2006-05-30 2007-12-06 Microsoft Corporation Strategies for Providing a Customized Media Presentation Based on a Markup Page Definition (MPD)
US8971667B2 (en) * 2006-10-23 2015-03-03 Hewlett-Packard Development Company, L.P. Digital image auto-resizing
JP2008129702A (ja) * 2006-11-17 2008-06-05 Canon Inc 情報処理装置および制御方法および制御プログラム
US8725801B2 (en) * 2006-11-21 2014-05-13 General Electric Company Systems and methods for image sharing in a healthcare setting while maintaining diagnostic image quality
JP4521417B2 (ja) * 2007-03-16 2010-08-11 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータの処理対象のオブジェクトが各ノードを成す、木構造により表現される、構造化電子文書を編集するためのコンピュータプログラム、方法及び装置
US8584042B2 (en) 2007-03-21 2013-11-12 Ricoh Co., Ltd. Methods for scanning, printing, and copying multimedia thumbnails
US8583637B2 (en) 2007-03-21 2013-11-12 Ricoh Co., Ltd. Coarse-to-fine navigation through paginated documents retrieved by a text search engine
CN100504879C (zh) * 2007-06-08 2009-06-24 北京大学 动态网页的分块方法
JP5100543B2 (ja) * 2008-07-11 2012-12-19 キヤノン株式会社 文書管理装置、文書管理方法、及びコンピュータプログラム
US8291313B1 (en) * 2009-08-26 2012-10-16 Adobe Systems Incorporated Generation of a container hierarchy from a document design
US8922582B2 (en) * 2009-11-16 2014-12-30 Martin J. Murrett Text rendering and display using composite bitmap images
US9069731B2 (en) * 2009-12-29 2015-06-30 Olive Software Inc. System and method for providing online versions of print-medium publications
KR20110091296A (ko) * 2010-02-05 2011-08-11 삼성전자주식회사 문서 작성 장치 및 방법
US20120159376A1 (en) * 2010-12-15 2012-06-21 Microsoft Corporation Editing data records associated with static images
US9002139B2 (en) 2011-02-16 2015-04-07 Adobe Systems Incorporated Methods and systems for automated image slicing
US8972853B2 (en) * 2012-04-13 2015-03-03 Business Objects Software Limited Rendering digital report elements using a layout optimization tool
US20140215308A1 (en) * 2013-01-31 2014-07-31 Adobe Systems Incorporated Web Page Reflowed Text
CN107368465B (zh) * 2016-05-13 2020-03-03 北京京东尚科信息技术有限公司 一种用于流式文档的截图类笔记处理的系统及方法
US10360288B2 (en) 2017-01-25 2019-07-23 International Business Machines Corporation Web page design snapshot generator
CN109710865B (zh) * 2018-12-06 2021-05-07 天津字节跳动科技有限公司 开放式自动布局方法、装置、电子设备和存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4379282A (en) * 1979-06-01 1983-04-05 Dest Corporation Apparatus and method for separation of optical character recognition data
JPH07107694B2 (ja) * 1984-08-31 1995-11-15 株式会社日立製作所 文書処理装置
JPS63116569A (ja) * 1986-11-04 1988-05-20 Canon Inc 画像処理システム
JPH01183784A (ja) * 1988-01-19 1989-07-21 Toshiba Corp 文書画像処理装置
US5131053A (en) * 1988-08-10 1992-07-14 Caere Corporation Optical character recognition method and apparatus
US5101448A (en) * 1988-08-24 1992-03-31 Hitachi, Ltd. Method and apparatus for processing a document by utilizing an image
DE3881392T2 (de) * 1988-09-12 1993-10-21 Oce Nederland Bv System und Verfahren für automatische Segmentierung.
US5086346A (en) * 1989-02-08 1992-02-04 Ricoh Company, Ltd. Image processing apparatus having area designation function
US5129012A (en) * 1989-03-25 1992-07-07 Sony Corporation Detecting line segments and predetermined patterns in an optically scanned document
JP2812982B2 (ja) * 1989-04-05 1998-10-22 株式会社リコー 表認識方法
JPH0816918B2 (ja) * 1989-04-18 1996-02-21 シャープ株式会社 行抽出方法
JP2644041B2 (ja) * 1989-05-08 1997-08-25 キヤノン株式会社 文字認識装置
JP2940936B2 (ja) * 1989-06-06 1999-08-25 株式会社リコー 表領域識別方法
CA2039652C (en) * 1990-05-30 1996-12-24 Frank Zdybel, Jr. Hardcopy lossless data storage and communications for electronic document processing systems
EP0461817A3 (en) * 1990-06-15 1993-11-18 American Telephone & Telegraph Image segmenting apparatus and methods
JPH0490083A (ja) * 1990-08-03 1992-03-24 Canon Inc 文字認識装置
US5101439A (en) * 1990-08-31 1992-03-31 At&T Bell Laboratories Segmentation process for machine reading of handwritten information
AU648595B2 (en) * 1990-09-27 1994-04-28 Cgk Computer Gesellschaft Konstanz Mbh Process for extracting individual characters from raster images of a read-in handwritten or typed series of characters in free distribution
KR930002349B1 (ko) * 1990-12-29 1993-03-29 주식회사 금성사 압축영상의 문자열 분리방법
JPH04248687A (ja) * 1991-01-23 1992-09-04 Internatl Business Mach Corp <Ibm> 文書画像のレイアウト解析方法及びシステム
US5172422A (en) * 1991-05-13 1992-12-15 Eastman Kodak Company Fast character segmentation of skewed text lines for optical character recognition
US5307422A (en) * 1991-06-25 1994-04-26 Industrial Technology Research Institute Method and system for identifying lines of text in a document
CA2048039A1 (en) * 1991-07-19 1993-01-20 Steven Derose Data processing system and method for generating a representation for and random access rendering of electronic documents
US5351314A (en) * 1991-10-04 1994-09-27 Canon Information Systems, Inc. Method and apparatus for image enhancement using intensity dependent spread filtering
JP2579397B2 (ja) * 1991-12-18 1997-02-05 インターナショナル・ビジネス・マシーンズ・コーポレイション 文書画像のレイアウトモデルを作成する方法及び装置
US5359673A (en) * 1991-12-27 1994-10-25 Xerox Corporation Method and apparatus for converting bitmap image documents to editable coded data using a standard notation to record document recognition ambiguities
US5335290A (en) * 1992-04-06 1994-08-02 Ricoh Corporation Segmentation of text, picture and lines of a document image
JP3220560B2 (ja) * 1992-05-26 2001-10-22 シャープ株式会社 機械翻訳装置
US5588072A (en) * 1993-12-22 1996-12-24 Canon Kabushiki Kaisha Method and apparatus for selecting blocks of image data from image data having both horizontally- and vertically-oriented blocks
US5987171A (en) * 1994-11-10 1999-11-16 Canon Kabushiki Kaisha Page analysis system
US5530852A (en) * 1994-12-20 1996-06-25 Sun Microsystems, Inc. Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics
US5594809A (en) * 1995-04-28 1997-01-14 Xerox Corporation Automatic training of character templates using a text line image, a text line transcription and a line image source model
US5848186A (en) * 1995-08-11 1998-12-08 Canon Kabushiki Kaisha Feature extraction system for identifying text within a table image

Also Published As

Publication number Publication date
EP0843276B1 (de) 2003-09-03
DE69724557D1 (de) 2003-10-09
JPH10162003A (ja) 1998-06-19
JP3976847B2 (ja) 2007-09-19
US5893127A (en) 1999-04-06
EP0843276A1 (de) 1998-05-20

Similar Documents

Publication Publication Date Title
DE69724557T2 (de) Dokumentenanalyse
DE69432585T2 (de) Verfahren und Gerät zur Auswahl von Text und/oder Non-Text-Blöcken in einem gespeicherten Dokument
DE69724755T2 (de) Auffinden von Titeln und Photos in abgetasteten Dokumentbildern
DE3926327C2 (de) Verfahren und System zum Erkennen von Zeichen auf einem Medium
DE60129872T2 (de) Verfahren zur Extrahierung von Titeln aus numerischen Bildern
DE60312572T2 (de) Verfahren und Gerät zum Konvertieren digitaler Bilder von Handzeichnungen zur weiteren Verwendung in einem strukturierten Text/Graphik Editor.
DE69723220T2 (de) Gerät und Verfahren zur Extrahierung von Tabellengeraden innerhalb normaler Dokumentbilder
DE4311172C2 (de) Verfahren und Einrichtung zum Identifizieren eines Schrägenwinkels eines Vorlagenbildes
DE69532847T2 (de) System zur Seitenanalyse
DE10162156B4 (de) Die Benutzernavigation durch Multimedia-Dateiinhalte unterstützendes System und Verfahren
DE60303202T2 (de) System und verfahren zum identifizieren und extrahieren von zeichenketten aus erfassten bilddaten
DE3722444C2 (de) Verfahren und Vorrichtung zum Erzeugen von Entwurfsmusterdaten
DE69933404T2 (de) System und Verfahren zum gemeinsamen Benutzen von Fonts und Speichermedium für das Programm zum Ausführen des Verfahrens
DE10308014B4 (de) System und Verfahren zum Lokalisieren eines nichttextlichen Bereichs eines elektronischen Dokumentes oder Bildes, der mit einer benutzerdefinierten Beschreibung des Bereichs übereinstimmt
DE69333694T2 (de) Verfahren und Anordnung zur Bildverarbeitung
DE602004005216T2 (de) Dokumentenscanner
DE60118240T2 (de) Methode zur bildanalyse
DE69133362T2 (de) Dokumentenverarbeitungs-verfahren und -gerät, entsprechende Program und Speichereinheit
DE4430369A1 (de) Verfahren und Einrichtung zum Erzeugen eines Dokumenten-Layouts
DE102011005579A1 (de) Bildverarbeitungsvorrichtung, Bildverarbeitungsverfahren und Speichermedium
DE19953608A1 (de) Vorrichtung und Verfahren zum genauen Erkennen eines Textfonts in einem Dokumentenverarbeitungssystem
DE10105941A1 (de) System und Verfahren zum automatischen Zuweisen eines Dateinamens zu einem gescannten Dokument
DE19956158A1 (de) Bild-Binärisierungsverfahren auf Bereichsbasis
DE10317917A1 (de) System und Verfahren zum Umgrenzen und Klassifizieren von Regionen innerhalb einer graphischen Abbildung
WO2005119580A1 (de) Verfahren und einrichtung zur strukturanalyse eines dokuments

Legal Events

Date Code Title Description
8364 No opposition during term of opposition