From c15b5a6f0c149f24fa92d361a804035cc03357fd Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Sun, 17 Jul 2016 16:55:45 +0800 Subject: JNI: Implement document Outline. --- .../java/src/com/artifex/mupdf/fitz/Document.java | 2 +- .../java/src/com/artifex/mupdf/fitz/Outline.java | 42 +++++++++++++++++----- 2 files changed, 35 insertions(+), 9 deletions(-) (limited to 'platform/java/src') diff --git a/platform/java/src/com/artifex/mupdf/fitz/Document.java b/platform/java/src/com/artifex/mupdf/fitz/Document.java index 89e3013b..b3c42e35 100644 --- a/platform/java/src/com/artifex/mupdf/fitz/Document.java +++ b/platform/java/src/com/artifex/mupdf/fitz/Document.java @@ -41,7 +41,7 @@ public class Document public native int countPages(); public native Page loadPage(int number); - public native Outline loadOutline(); + public native Outline[] loadOutline(); public native String getMetaData(String key); public native boolean isReflowable(); public native void layout(float width, float height, float em); diff --git a/platform/java/src/com/artifex/mupdf/fitz/Outline.java b/platform/java/src/com/artifex/mupdf/fitz/Outline.java index 98a11b79..01b6554a 100644 --- a/platform/java/src/com/artifex/mupdf/fitz/Outline.java +++ b/platform/java/src/com/artifex/mupdf/fitz/Outline.java @@ -2,16 +2,42 @@ package com.artifex.mupdf.fitz; public class Outline { - private long pointer; + public String title; + public String uri; + public int page; + public Outline down[]; - protected native void finalize(); - - public void destroy() { - finalize(); - pointer = 0; + public Outline(String title, int page, String uri, Outline[] down) { + this.title = title; + this.page = page; + this.uri = uri; + this.down = down; } - private Outline(long p) { - pointer = p; + public String toString() + { + StringBuffer s = new StringBuffer(); + + s.append(page); + s.append(": "); + s.append(title); + s.append(' '); + s.append(uri); + s.append('\n'); + + if (down != null) + { + for (int i = 0; i < down.length; i++) + { + s.append('\t'); + s.append(down[i]); + s.append('\n'); + } + } + + s.deleteCharAt(s.length() - 1); + + return s.toString(); } + } -- cgit v1.2.3