使用pdfBox提取OpenTypeFont文本的问题

时间:2014-12-06 16:01:26

标签: java pdf pdfbox

我有一个pdf文档,其字体类型是OpenType(Garamond OpenType)。因此,pdfBox文本提取也可以提取特殊字符(例如小资本字母),当底层字体是简单的Type1字体时会导致问题。

但是,文本提取现在会导致另一类问题。在我的情况下,当字符序列" fi"或" fl"在文本中,PDFTextStripper#getText(PDDocument doc)将其作为单个字符提取:' fi'和' fl'并在右侧设置空格字符。

(令人惊讶的是,如果我通过charactersByArticle方法的PDFTextStripper#processText(TextPosition pos)字段访问网页的字符列表,则相同的字符会显示为' normal-single&# 39;字符fi / fl)。

我的假设是底层OpenFont类型的优势变成了这个特殊的缺点,因为PDFTextStripper将字符序列fi / fl识别为特殊字符fi / fl( - 可能与事实有关,getText()方法按距离/位置放置计算空白字符之类的东西。

背景:给定的文档是一个印刷文本非常密集的wordbook文本。

我的问题:我能做些什么来避免这个问题?

提前感谢...

编辑:

@mkl这是一个简单的代码片段(仅用于测试目的):

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Vector;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;
import org.apache.pdfbox.util.TextPosition;

public class PDFTextStripperOpenFontTest extends PDFTextStripper {

public PDFTextStripperOpenFontTest(String encoding) throws IOException {
    super(encoding);
}

public static void main(String[] args) throws IOException {
    String fileName = "filename";
    PDFTextStripperOpenFontTest stripper = new PDFTextStripperOpenFontTest("UTF-8");
    stripper.setSortByPosition(false);
    PDDocument doc = PDDocument.load(new File(fileName));
    stripper.setStartPage(1);
    stripper.setEndPage(1);
    //extract text by getText(doc)
    String text1 = stripper.getText(doc);
    text1 = text1.replaceAll("\\r|\\n", "");
    System.out.println(text1);
    //extract text by
    StringBuilder sb = new StringBuilder();
    Vector<List<TextPosition>> list = stripper.getCharactersByArticle();
    for (List<TextPosition> list2 : list) 
        for (TextPosition textPosition : list2) 
            sb.append(textPosition.getCharacter());
    System.out.println(sb.toString());  
    doc.close();
}
}

这是测试文件的输出(差异从页面的后半部分开始):

des Verhältnisses von Individuum und Gesellschaft habe (vgl. Holzkamp-Osterkamp 1976, Kap. 5.2). Er schlug allerdings vor, Sigmund Freuds persön-lichkeitstheoretische Konzeptionen »der Abwehr-vorgänge, der Angst und des Unbewussten« mit historisch bestimmten gesellschaftlichen Verhältnis-sen zu vermitteln (255f) und sie subjektwissenschaft-lich zu reinterpretieren. »Freuds Prämissen von der  genuinen Unvereinbarkeit subjektiver Lebensan-sprüche mit gesellschaftlichen Anforderungen« sind für Holzkamp mehr als eine »falsche Universali-sierung bürgerlich-kapitalistischer Verhältnisse«, sie brächten auch »bestimmte Aspekte der subjektiven Situation der Menschen unter diesen Verhältnissen […] differenziert und schonungslos« auf den Begriff (1984, 33). Die Auffassung, dass die ich-psycholo-gische »›Soziologisierung‹« die »Schärfe und Uner-bittlichkeit« der Psychoanalyse »verkleistert« (ebd.), teilt er mit Adorno, der darin deren »Kastrierung« behauptet (1952, 25).3. Die Entwicklung einer eigenständigen KP begann mit dem Problem, allein auf der Basis der marx-schen KrpÖ verschiedene Ansätze und Befunde der »bürgerlichen« Psychologie nicht »differenziell«, d.h. nach ihrem jeweiligen Verhältnis von Erkennt-nismöglichkeiten und -grenzen beurteilen und somit nicht kritisch-psychologisch aufheben zu können (Maiers 1979). »Positive Ergebnisse über die empi-rische Subjektivität des Menschen in der bürgerlichen Gesellschaft« (Holzkamp 1978, 249) versprachen zwei Wege historisch-rekonstruktiver Forschung: wissenschaftsbezogen zu untersuchen, wie es dazu kam, dass im 19. Jh. »empirische Subjektivität« auf eine Weise problematisch wurde, die zur Entstehung der Einzelwissenschaft »Psychologie« führte (1973, 45); und gegenstandsbezogen die Grundlagen der menschlichen Subjektivität von der Entstehung des Psychischen über das Tier-Mensch-Übergangsfeld bis zur Existenz in kapitalistischen Verhältnissen zu analysieren (46f). Während der erste Weg im Umkreis der KP v.a. von Siegfried Jaeger und Irmingard Staeuble (1978) verfolgt wurde, konzentrierte sich der Kreis um Holzkamp zunächst auf den zweiten. Holzkamp resümiert später, dass »die Unterscheidung zwischen wissenschafts- und gegenstandsbezogener Kategorialanalyse nur ›aspekthafter‹ Natur ist« (1983, 37). Problematisch bleibt, inwieweit die Begriffe, von denen auch die Rekonstruktion des Psychischen ihren Ausgang nehmen muss, diese formieren (Fries 2011). Insofern müssen bei einer »vollständigen his-torischen Analyse« die betreffenden psychologischen Konzepte »›im Schnittpunkt‹« beider »Entwicklungs-züge« begriffen werden (Holzkamp 1973, 47).4. Der Anspruch der historischen Rekonstruktion des Psychischen ist es, die auf einen vorparadigma-tischen (Métraux 1981; Graumann 1994) Zustand der Psychologie verweisende »Beliebigkeit« (Holz-kamp 1977b) der Begriffsbildung zu überwinden und die Psychologie kategorial neu zu begründen. Termi-nologisch ist es schwierig, dass in der KP die Bezeich-nung wissenschaftlich ausgewiesener Grundbegriffe als »Kategorien« (programmatisch Holzkamp 1983, 19 u. 27) im Gegensatz zur Verwendungsweise bei Marx steht, der damit gerade Alltagsvorstellun-gen meint (vgl. W.F.Haug 2008), die wiederum bei Holzkamp als »Vorbegriffe« (1983, 48ff u. 515ff) bezeichnet werden.4.1 In einer Spezifi zierung des logisch-historischen Herangehens ging es der KP darum, das Verhältnis von Natur-, Gesellschafts- und Individualgeschichte begriffl ich so aufzuklären, dass dem entwicklungs-geschichtlich Früheren das begriffl ich Allgemeinere und dem entwicklungsgeschichtlich Späteren das begriffl ich Spezifi schere entsprechen soll. Dies als eine Grundlage dafür, sowohl Anthropomorphisie-rungen tierischen Verhaltens als auch Biologisierun-gen gesellschaftlicher Verhältnisse bzw. menschlichen Handelns und Erlebens und damit Universalisierun-gen historisch spezifi scher Ausdrucksformen des Psychischen zu vermeiden. Die KP schloss an Arbei-ten der »Kulturhistorischen Schule« an, bes. an  Alexej N. Leontjews 1959 veröffentlichtes »historisches Herangehen an die Untersuchungen der mensch-lichen Psyche« (1973, 262ff; vgl. Holzkamp 1983, 47). Gegen dessen Durchführung wandten Holz-kamp und Volker Schurig (1973, XLVI) jedoch ein, dass der Gedanke der Historizität des Psychischen in Leontjews »Forschungsarbeit nicht überall mit gleicher Entschiedenheit Berücksichtigung« gefun-den habe, die Gesellschaftlichkeit des Menschen zwar allgemein bestimmt, nicht aber formationsspe-zifi sch auf gesellschaftliche Widersprüche in der SU konkretisiert worden sei. – In der KP bestanden mit Blick auf die DDR, der Holzkamp eine »systembe-dingte Konvergenz zwischen allgemeinen und indi-viduellen Interessen« (1983, 382) attestierte, ähnliche Neigungen zur Widerspruchseliminierung, die von der Hoffnung auf dortige Publikationszustimmung genährt waren (vgl. Markard 2009a, 199f).4.2 Soweit sich die Kategorialanalyse auf biologi-sche Evolutionsprozesse bezieht, wird sie als »funk-tional-historisch« charakterisiert (Maiers 1999). Sie zielt auf die Rekonstruktion von Widersprüchen in Organismus-Umwelt-Konstellationen, aus denen Entwicklungen und neue Qualitäten in ihrer biolo-gischen Funktionalität begreifbar werden – bezogen auf jene Evolutionsreihe, die zum Menschen hin-führt, unter dem Gesichtspunkt der Entstehung und Kritische Psychologie 171 172
des Verhältnisses von Individuum und Gesellschaft habe (vgl. Holzkamp-Osterkamp 1976, Kap. 5.2). Er schlug allerdings vor, Sigmund Freuds persön-lichkeitstheoretische Konzeptionen »der Abwehr-vorgänge, der Angst und des Unbewussten« mit historisch bestimmten gesellschaftlichen Verhältnis-sen zu vermitteln (255f) und sie subjektwissenschaft-lich zu reinterpretieren. »Freuds Prämissen von der  genuinen Unvereinbarkeit subjektiver Lebensan-sprüche mit gesellschaftlichen Anforderungen« sind für Holzkamp mehr als eine »falsche Universali-sierung bürgerlich-kapitalistischer Verhältnisse«, sie brächten auch »bestimmte Aspekte der subjektiven Situation der Menschen unter diesen Verhältnissen […] differenziert und schonungslos« auf den Begriff (1984, 33). Die Auffassung, dass die ich-psycholo-gische »›Soziologisierung‹« die »Schärfe und Uner-bittlichkeit« der Psychoanalyse »verkleistert« (ebd.), teilt er mit Adorno, der darin deren »Kastrierung« behauptet (1952, 25).3. Die Entwicklung einer eigenständigen KP begann mit dem Problem, allein auf der Basis der marx-schen KrpÖ verschiedene Ansätze und Befunde der »bürgerlichen« Psychologie nicht »differenziell«, d.h. nach ihrem jeweiligen Verhältnis von Erkennt-nismöglichkeiten und -grenzen beurteilen und somit nicht kritisch-psychologisch aufheben zu können (Maiers 1979). »Positive Ergebnisse über die empi-rische Subjektivität des Menschen in der bürgerlichen Gesellschaft« (Holzkamp 1978, 249) versprachen zwei Wege historisch-rekonstruktiver Forschung: wissenschaftsbezogen zu untersuchen, wie es dazu kam, dass im 19. Jh. »empirische Subjektivität« auf eine Weise problematisch wurde, die zur Entstehung der Einzelwissenschaft »Psychologie« führte (1973, 45); und gegenstandsbezogen die Grundlagen der menschlichen Subjektivität von der Entstehung des Psychischen über das Tier-Mensch-Übergangsfeld bis zur Existenz in kapitalistischen Verhältnissen zu analysieren (46f). Während der erste Weg im Umkreis der KP v.a. von Siegfried Jaeger und Irmingard Staeuble (1978) verfolgt wurde, konzentrierte sich der Kreis um Holzkamp zunächst auf den zweiten. Holzkamp resümiert später, dass »die Unterscheidung zwischen wissenschafts- und gegenstandsbezogener Kategorialanalyse nur ›aspekthafter‹ Natur ist« (1983, 37). Problematisch bleibt, inwieweit die Begriffe, von denen auch die Rekonstruktion des Psychischen ihren Ausgang nehmen muss, diese formieren (Fries 2011). Insofern müssen bei einer »vollständigen his-torischen Analyse« die betreffenden psychologischen Konzepte »›im Schnittpunkt‹« beider »Entwicklungs-züge« begriffen werden (Holzkamp 1973, 47).4. Der Anspruch der historischen Rekonstruktion des Psychischen ist es, die auf einen vorparadigma-tischen (Métraux 1981; Graumann 1994) Zustand der Psychologie verweisende »Beliebigkeit« (Holz-kamp 1977b) der Begriffsbildung zu überwinden und die Psychologie kategorial neu zu begründen. Termi-nologisch ist es schwierig, dass in der KP die Bezeich-nung wissenschaftlich ausgewiesener Grundbegriffe als »Kategorien« (programmatisch Holzkamp 1983, 19 u. 27) im Gegensatz zur Verwendungsweise bei Marx steht, der damit gerade Alltagsvorstellun-gen meint (vgl. W.F.Haug 2008), die wiederum bei Holzkamp als »Vorbegriffe« (1983, 48ff u. 515ff) bezeichnet werden.4.1 In einer Spezifi zierung des logisch-historischen Herangehens ging es der KP darum, das Verhältnis von Natur-, Gesellschafts- und Individualgeschichte begriffl ich so aufzuklären, dass dem entwicklungs-geschichtlich Früheren das begriffl ich Allgemeinere und dem entwicklungsgeschichtlich Späteren das begriffl ich Spezifi schere entsprechen soll. Dies als eine Grundlage dafür, sowohl Anthropomorphisie-rungen tierischen Verhaltens als auch Biologisierun-gen gesellschaftlicher Verhältnisse bzw. menschlichen Handelns und Erlebens und damit Universalisierun-gen historisch spezifi scher Ausdrucksformen des Psychischen zu vermeiden. Die KP schloss an Arbei-ten der »Kulturhistorischen Schule« an, bes. an  Alexej N. Leontjews 1959 veröffentlichtes »historisches Herangehen an die Untersuchungen der mensch-lichen Psyche« (1973, 262ff; vgl. Holzkamp 1983, 47). Gegen dessen Durchführung wandten Holz-kamp und Volker Schurig (1973, XLVI) jedoch ein, dass der Gedanke der Historizität des Psychischen in Leontjews »Forschungsarbeit nicht überall mit gleicher Entschiedenheit Berücksichtigung« gefun-den habe, die Gesellschaftlichkeit des Menschen zwar allgemein bestimmt, nicht aber formationsspe-zifi sch auf gesellschaftliche Widersprüche in der SU konkretisiert worden sei. – In der KP bestanden mit Blick auf die DDR, der Holzkamp eine »systembe-dingte Konvergenz zwischen allgemeinen und indi-viduellen Interessen« (1983, 382) attestierte, ähnliche Neigungen zur Widerspruchseliminierung, die von der Hoffnung auf dortige Publikationszustimmung genährt waren (vgl. Markard 2009a, 199f).4.2 Soweit sich die Kategorialanalyse auf biologi-sche Evolutionsprozesse bezieht, wird sie als »funk-tional-historisch« charakterisiert (Maiers 1999). Sie zielt auf die Rekonstruktion von Widersprüchen in Organismus-Umwelt-Konstellationen, aus denen Entwicklungen und neue Qualitäten in ihrer biolo-gischen Funktionalität begreifbar werden – bezogen auf jene Evolutionsreihe, die zum Menschen hin-führt, unter dem Gesichtspunkt der Entstehung und Kritische Psychologie 171 172

您可以在此链接下找到用于此测试的pdf文件: https://issues.apache.org/jira/browse/PDFBOX-2548

我添加了第二个测试页面,来自同一个wordbook的前一卷。对于此卷,已使用Type1字体。我选择了一个页面,其中有两个单词&#34; begrifflich&#34;和&#34; spezifisch&#34;发生(它们会引起问题,如第一次测试中所见)。正如您所看到/测试的那样,在提取第二页的文本时不会出现所描述的错误!这加强了我的假设,即OpenType格式是发生错误的原因。

这是第二个输出:

ehrenamtliche Arbeit, Eigenarbeit, Elend, Exklusion,Gemeinwesen, Genossenschaft, Kommunalpolitik, Kom-munitarismus, Nachbarschaftsbewegung, neue sozialeBewegungen, Owenismus, Selbstverwaltung, Sozialarbeit,Sozialfürsorge, Sozialpolitik, Sozialstaat, Wohlfahrtsstaat,WohnungsfrageGemeinwirtschaftA: al-iqisäd at-ta’äwuni.– E: communal economy . –F: économie communautaire. –R: kooperativnoye khoziaysrvo. –S: economía comunitaria. – C: jiti jingjiDie Konzeption der ›G‹ ist nicht originär sozialistisch.Sie wurde erst nachträglich von der Arbeiterbewegungbegrifflich adaptiert und im Sinne eines nicht-kapita-listischen Wirtschaftssektors (v.a. gewerkschaftseigene,genossenschaftliche und öffentliche Unternehmen),der primär bedarfsorientiert und demokratisch kon-trolliert arbeiten sollte, in reformsozialistische Strate-gien integriert.In jeweils unterschiedlichen Formen und Strukturenhat sich seit Ende des 19. Jh. in den verschiedeneneuropäischen Ländern ein Unternehmenssektor mitnicht-kapitalistischen Eigentümern herausgebildet,in Gestalt staatlicher bzw. kommunaler und nicht-staatlicher Unternehmen. In Großbritannien entstandunter Einfluss des Munizipalsozialismus hauptsäch-lich ein kommunal-gemeinwirtschaftlicher Sektor;in Österreich versteht man unter G vorwiegend den(zentralisierten) Staatssektor. In Deutschland da-gegen hat die gewerkschaftlich organisierte Arbei-terbewegung selbst einen sog. freigemeinwirtschaft-lichen Sektor gefördert und zeitweilig aufgebaut,dessen Besonderheit eine Identifikation mit demenglischen ›social sector‹ oder dem französischen›secteur public‹ verbietet. So bezeichnet der Aus-druck im engeren Sinne eine spezifische, vornehmlichin Deutschland nach dem Ersten Weltkrieg geschaffeneRealität.1. Die Klassiker der deutschen G-Lehre (EugenDÜHRING, Albert SCHÄFFLE, Adolph WAGNER) gingendavon aus, dass in kapitalistischen Gesellschaften –um die Funktionsfähigkeit des marktwirtschaftlichenSystems zu gewährleisten – neben dem privatwirt-schaftlichen Sektor ein mehr oder weniger ausgedehn-ter gemeinwirtschaftlicher Sektor bestehen muss, dernicht profitorientiert ist, was Hans RITSCHL späterals »dualistische Wirtschaftsordnung« charakterisiert(1931). Die G umfasst für diese Tradition nicht nurstaatliche bzw. kommunale, sondern auch ›frei-gemeinwirtschaftliche‹ Unternehmen privater Trägerund Genossenschaften. Die klassische G-Lehre isteine harmonistische Konzeption (THIEMEYER 1980),die ein ›organisches‹ Nebeneinander von Privat- undGemeinwirtschaft anstrebt. Im System zunehmenderDominanz der Großindustrie und bei einer wach-senden und kämpferischen Arbeiterbewegung sollennicht-profitorientierte staatssozialistische Betriebefür sozialen Ausgleich sorgen und zur politischenEntspannung beitragen (SCHÄFFLE 1875).2. Bei MARX und ENGELS lassen sich nur wenige kon-zeptionelle Bezüge zur G-Lehre herstellen. Heftigpolemisiert Engels gegen DÜHRINGS auf die G-Kon-zeption zugeschnittene »Wirtschaftskommunen« (AD,MEW 20, 268ff). Bis zu dem Zeitpunkt, wo unterMarxisten reformistische Auffassungen an Bodengewinnen, besteht ein zentraler Gegensatz zwischenMarxismus und G-Lehre: den Klassikern des Marxis-mus kann in diesem Kontext der quasi umfassendsteG-Anspruch zugeschrieben werden (KÜHNE 1978),nämlich auf gesamtgesellschaftliche Verwirklichungeiner nicht-kapitalistischen G.Einzelne Formen der G werden von MARX undENGELS dem Inhalt nach angesprochen, etwa öffent-liche Unternehmen: so wird in den Forderungen derKommunistischen Partei in Deutschland 1848 dieVerstaatlichung des Transport-, Verkehrs- und Kom-munikationswesens verlangt, verbunden mit dempreispolitischen Konzept des ›Nulltarifs‹: die betref-fenden öffentlichen Dienstleistungen sollen »derunbemittelten Klasse zur unentgeltlichen Verfügunggestellt« werden (MEW 5, 4; vgl. 4, 373f).Die meisten der für die G-Thematik relevantenAusführungen beziehen sich auf genossenschaftlicharbeitende »Kooperativfabriken«. MARX widmet sichder Problematik von isolierten oder sektoral begrenz-ten Genossenschaftsunternehmen, die den privat-wirtschaftlichen ›Eigennutz‹ zunächst nur im Innen-verhältnis der Kooperativ-Mitglieder überwindenkönnen. Ein umfassendes und gesamtgesellschaftlichrationales System freier Kooperativarbeit hingegenlässt sich Marx zufolge nicht ohne gesellschaftlicheVeränderungen mit dem Übergang der Staatsmachtin die Hände der Produzenten selbst verwirklichen(Inauguraladresse, MEW 16, 11, 195f; Gotha, MEW19, 13-32). ENGELS spricht sich in späteren Jahrenmehrfach für genossenschaftliche Produktionsbe-triebe aus (z.B. MEW 36, 261, 426), freilich nicht imSinne einer harmonistischen G-Konzeption, bei der
ehrenamtliche Arbeit, Eigenarbeit, Elend, Exklusion,Gemeinwesen, Genossenschaft, Kommunalpolitik, Kom-munitarismus, Nachbarschaftsbewegung, neue sozialeBewegungen, Owenismus, Selbstverwaltung, Sozialarbeit,Sozialfürsorge, Sozialpolitik, Sozialstaat, Wohlfahrtsstaat,WohnungsfrageGemeinwirtschaftA: al-iqisäd at-ta’äwuni.– E: communal economy . –F: économie communautaire. –R: kooperativnoye khoziaysrvo. –S: economía comunitaria. – C: jiti jingjiDie Konzeption der ›G‹ ist nicht originär sozialistisch.Sie wurde erst nachträglich von der Arbeiterbewegungbegrifflich adaptiert und im Sinne eines nicht-kapita-listischen Wirtschaftssektors (v.a. gewerkschaftseigene,genossenschaftliche und öffentliche Unternehmen),der primär bedarfsorientiert und demokratisch kon-trolliert arbeiten sollte, in reformsozialistische Strate-gien integriert.In jeweils unterschiedlichen Formen und Strukturenhat sich seit Ende des 19. Jh. in den verschiedeneneuropäischen Ländern ein Unternehmenssektor mitnicht-kapitalistischen Eigentümern herausgebildet,in Gestalt staatlicher bzw. kommunaler und nicht-staatlicher Unternehmen. In Großbritannien entstandunter Einfluss des Munizipalsozialismus hauptsäch-lich ein kommunal-gemeinwirtschaftlicher Sektor;in Österreich versteht man unter G vorwiegend den(zentralisierten) Staatssektor. In Deutschland da-gegen hat die gewerkschaftlich organisierte Arbei-terbewegung selbst einen sog. freigemeinwirtschaft-lichen Sektor gefördert und zeitweilig aufgebaut,dessen Besonderheit eine Identifikation mit demenglischen ›social sector‹ oder dem französischen›secteur public‹ verbietet. So bezeichnet der Aus-druck im engeren Sinne eine spezifische, vornehmlichin Deutschland nach dem Ersten Weltkrieg geschaffeneRealität.1. Die Klassiker der deutschen G-Lehre (EugenDÜHRING, Albert SCHÄFFLE, Adolph WAGNER) gingendavon aus, dass in kapitalistischen Gesellschaften –um die Funktionsfähigkeit des marktwirtschaftlichenSystems zu gewährleisten – neben dem privatwirt-schaftlichen Sektor ein mehr oder weniger ausgedehn-ter gemeinwirtschaftlicher Sektor bestehen muss, dernicht profitorientiert ist, was Hans RITSCHL späterals »dualistische Wirtschaftsordnung« charakterisiert(1931). Die G umfasst für diese Tradition nicht nurstaatliche bzw. kommunale, sondern auch ›frei-gemeinwirtschaftliche‹ Unternehmen privater Trägerund Genossenschaften. Die klassische G-Lehre isteine harmonistische Konzeption (THIEMEYER 1980),die ein ›organisches‹ Nebeneinander von Privat- undGemeinwirtschaft anstrebt. Im System zunehmenderDominanz der Großindustrie und bei einer wach-senden und kämpferischen Arbeiterbewegung sollennicht-profitorientierte staatssozialistische Betriebefür sozialen Ausgleich sorgen und zur politischenEntspannung beitragen (SCHÄFFLE 1875).2. Bei MARX und ENGELS lassen sich nur wenige kon-zeptionelle Bezüge zur G-Lehre herstellen. Heftigpolemisiert Engels gegen DÜHRINGS auf die G-Kon-zeption zugeschnittene »Wirtschaftskommunen« (AD,MEW 20, 268ff). Bis zu dem Zeitpunkt, wo unterMarxisten reformistische Auffassungen an Bodengewinnen, besteht ein zentraler Gegensatz zwischenMarxismus und G-Lehre: den Klassikern des Marxis-mus kann in diesem Kontext der quasi umfassendsteG-Anspruch zugeschrieben werden (KÜHNE 1978),nämlich auf gesamtgesellschaftliche Verwirklichungeiner nicht-kapitalistischen G.Einzelne Formen der G werden von MARX undENGELS dem Inhalt nach angesprochen, etwa öffent-liche Unternehmen: so wird in den Forderungen derKommunistischen Partei in Deutschland 1848 dieVerstaatlichung des Transport-, Verkehrs- und Kom-munikationswesens verlangt, verbunden mit dempreispolitischen Konzept des ›Nulltarifs‹: die betref-fenden öffentlichen Dienstleistungen sollen »derunbemittelten Klasse zur unentgeltlichen Verfügunggestellt« werden (MEW 5, 4; vgl. 4, 373f).Die meisten der für die G-Thematik relevantenAusführungen beziehen sich auf genossenschaftlicharbeitende »Kooperativfabriken«. MARX widmet sichder Problematik von isolierten oder sektoral begrenz-ten Genossenschaftsunternehmen, die den privat-wirtschaftlichen ›Eigennutz‹ zunächst nur im Innen-verhältnis der Kooperativ-Mitglieder überwindenkönnen. Ein umfassendes und gesamtgesellschaftlichrationales System freier Kooperativarbeit hingegenlässt sich Marx zufolge nicht ohne gesellschaftlicheVeränderungen mit dem Übergang der Staatsmachtin die Hände der Produzenten selbst verwirklichen(Inauguraladresse, MEW 16, 11, 195f; Gotha, MEW19, 13-32). ENGELS spricht sich in späteren Jahrenmehrfach für genossenschaftliche Produktionsbe-triebe aus (z.B. MEW 36, 261, 426), freilich nicht imSinne einer harmonistischen G-Konzeption, bei der

......到目前为止

1 个答案:

答案 0 :(得分:1)

因为并行打开的PDFBox问题PDFBOX-2548已经解释得有点晚了一点,但这里作为总结:

总结一下:第一个示例PDF的创建过程使用了连字,后跟实际的空格字符和插入点移动。这是否是由于此过程中的程序没有正确支持OpenType字体(如OP假设)或其他一些弱点,无法仅基于输出PDF来决定。

要解决此问题,您应该修复文档创建过程。如果无法做到这一点,您可以尝试增强PDFBox以理解该过程创建的奇怪现象,但这非常简单和/或容易出错。

详细信息:

  

当文本中出现字符序列“fi”或“fl”时,PDFTextStripper#getText(PDDocument doc)将它们提取为单个字符:'fi'和'fl'并在其右侧设置空格字符。

包含两者样本的第一个样本文档test.pdf的一部分是

Section of test.pdf

Spezifizierung begrifflich

在文本提取方面遇到麻烦的第一件事通常是从Adobe Reader复制和粘贴,因为该软件非常精通文本提取问题。我们得到:

In einer Spezifi zierung des
...
begriffl ich so aufzuklären

因此,Adobe Reader也会提取这些不需要的空格字符!这通常意味着PDF中存在一些问题,而不是文本提取器。

查看绘制文本的操作,我们看到:

[(4.1 In einer Spezifi)305.505( )-20.3063(zierung des logisch-historischen )]TJ 

这意味着在绘制“Spezi fi”后,文本插入点向后移动0.3个文本空间单位,然后绘制一个空格字符,然后文本插入点向前移动0.02个文本空间单位,然后其余部分画线。

(begriffl)Tj
24.1273 0 Td
1.9264 Tw
[( )168.494(ich so aufzuklären, dass dem entwicklungs-)]TJ 

类似地,在绘制“begrif fl”之后,文本插入点向前移动0.024个文本空间单位,单词间距变为近2个未缩放的文本空间单位(即空格字符的宽度增加了该数量) ,然后绘制一个空格字符,然后将文本插入点向后移动0.17个文本空间单位,然后绘制该行的其余部分。

因此,在两种情况下,确实存在单个连字字形,后跟空格字符,就像PDFBox返回一样。

  

我的假设是底层OpenFont类型的优势变成了这个特殊的缺点,因为PDFTextStripper将字符序列fi / fl识别为特殊字符fi / fl( - 可能与getText事实有关()方法通过距离/位置放置来计算空白字符之类的东西。

不,它不是不是 PDFBox或Adobe Reader文本提取例程的奇怪之处,它是PDF创建过程的一个奇怪现象。

  

令人惊讶的是,如果我通过PDFTextStripper的charactersByArticle字段/通过PDFTextStripper#processText(TextPosition pos)方法访问页面的字符列表,则相同的字符显示为'normal-single'字符fi / fl

在某些时候,PDFBox确实会将连字扩展为他们的参与者字母,如PDFBOX-2548中提到的那样 by design 。选择哪种方法返回连字以及哪些单独的字母是好的和正确记录的字母可能是另一回事。

  

我添加了第二个测试页面,来自同一个wordbook的前一卷。对于此卷,已使用Type1字体。我选择了一个页面,其中出现了两个单词“begrifflich”和“spezifisch”(它们会导致问题,因为您可以在第一个测试中看到)。如您所见/ test,在提取第二页的文本时不会出现所描述的错误!这加强了我的假设,即OpenType格式是发生错误的原因。

查看test2.pdf

中的文字绘图操作
[(begrifflich adaptiert und im Sinne eines n)20.2892(i)20.3857(c)20.4141(h)20.3148(t)20.3801(-)20.4198(k)20.3148(a)20.4141(p)]TJ
....
(druck im engeren Sinne eine spezifische, vornehmlich)Tj

在本文档中,没有像第一个那样奇怪的连字和空格特征。因此,没有理由让PDFBox(或Adobe Reader)看到这样的空格字符。

  

我的问题:我能做些什么来避免这个问题?

修复文档创建过程。

如果无法做到这一点,您可以尝试更改从PDFTextStripper

派生的类
  • 要么忽略包含空格字符的所有TextPosition个实例(包括不需要的空格字符),要么通过间隙或
  • 推断出正确的空格字符
  • 检查所有已识别的空格是否有重叠的字母。

前一种替代方案更容易实现,但有些容易出错,特别是在密集排版的文档中,后者更难实现但更不容易出错。