如何从pdf中获取文本保留原始格式(使用CTX_DOC)​​?

时间:2015-06-21 08:31:38

标签: oracle plsql pdf-parsing bfile

我使用此代码过滤pdf文件中的文字:

create or replace directory pdf_dir as '&1';

create or replace directory l_curr_dir as '&3';

declare
  ll_clob     CLOB;
  l_bfile     BFILE;
  l_filename  VARCHAR2(200) := '&2';
begin
  begin
    ctx_ddl.drop_preference('testfilter');
    ctx_ddl.drop_policy('testdimac_policy1');
  exception when others then
    null;
  end;

  ctx_ddl.create_preference('testfilter', 'AUTO_FILTER');
  ctx_ddl.create_policy('testd_policy1', 'testfilter');

  l_bfile := bfilename('PDF_DIR', l_filename);

  dbms_lob.fileopen(l_bfile);

  ctx_doc.policy_filter(
      policy_name => 'test_policy1'
    , document    => l_bfile
    , restab      => ll_clob
    , plaintext   => true
    , CHARSET     => 'US7ASCII'
  );

DBMS_XSLPROCESSOR.clob2file (ll_clob,'L_CURR_DIR' , '&4');
/

解决方案很好并且对我有用,但有没有办法获取表格数据,现在它正在逐字或逐行过滤文本。

例如,如果pdf包含如下值:

Name:            Amount  
Pradeep          100 USD  

我希望输出不变,但是当前设置会输出如下输出:

Name:
Amount
Pradeep
100 USD

有没有办法在pdf中获取原始格式的文字?

是否可以更改过滤器?

0 个答案:

没有答案