如何在 C# 或 Java 中获取 AFP 文件的页数

  • 本文关键字:文件 AFP 获取 Java afp
  • 更新时间 :
  • 英文 :


我有一个AFP文件,我需要使用c#获取文件中存在的页面计数。根据文件计数,我必须为 AFP 文件创建一个打印队列,那么是否可以使用 c# 或 java?我没有找到任何用于在互联网上获取计数的支持代码。

afplib有一些示例代码来做到这一点。基本上,您需要遍历AFP中的所有结构化字段并计算BPG(起始页)的数量。此代码片段取自此处:

try (AfpInputStream in = new AfpInputStream(
                new BufferedInputStream(new FileInputStream(s)))) {
            int pages = 0;
            int resources = 0;
            SF sf;
            while((sf = in.readStructuredField()) != null) {
                log.trace("{}", sf);
                switch(sf.getId()) {
                case SFName.BPG_VALUE:
                    pages++;
                    if(progress && pages % 1000 == 0)
                        System.out.print(String.format("r%06d %04d %s", pages, resources, s));
                    break;
                case SFName.BRS_VALUE:
                    resources++;
                    if(progress && resources % 1000 == 0)
                        System.out.print(String.format("r%06d %04d %s", pages, resources, s));
                    break;
                }
            }
            if(progress)
                System.out.print("r");
            System.out.println(String.format("%06d %04d %s", pages, resources, s));
        } catch (Exception e) {
        }

相关内容

  • 没有找到相关文章

最新更新