javacpp调用pdfium的c++动态库

1、.h头文件

2、生成java代码的conf    

PdfiumDocumentConfigure.java
package org.swdc.pdfium.conf;

import org.bytedeco.javacpp.annotation.Platform;
import org.bytedeco.javacpp.annotation.Properties;
import org.bytedeco.javacpp.tools.InfoMap;
import org.bytedeco.javacpp.tools.InfoMapper;

@Properties(value = {
        @Platform(
                value = "windows-x86_64",
                include = "fpdf_doc.h",
                link = "pdfium"
        ),
        @Platform(
                value = "macosx-x86_64",
                include = "fpdf_doc.h",
                link = "pdfium"
        )
},
        inherit = PdfiumViewConfigure.class,
        target = "org.swdc.pdfium.core.PdfiumDocument",
        global = "org.swdc.pdfium.core.PdfiumDocument"
)
public class PdfiumDocumentConfigure implements InfoMapper {
    @Override
    public void map(InfoMap infoMap) {

    }
}
PdfiumEditConfigure.java
package org.swdc.pdfium.conf;

import org.bytedeco.javacpp.annotation.Platform;
import org.bytedeco.javacpp.annotation.Properties;
import org.bytedeco.javacpp.tools.Info;
import org.bytedeco.javacpp.tools.InfoMap;
import org.bytedeco.javacpp.tools.InfoMapper;

@Properties(value = {
        @Platform(
                value = "windows-x86_64",
                include = {
                        "fpdf_edit.h",
                        "fpdf_save.h",
                        "ext_fpdf_save.h",
                        "ext_fpdf_edit.h"
                },
                link = "pdfium"
        ),
        @Platform(
                value = "macosx-x86_64",
                include = {
                        "fpdf_edit.h",
                        "fpdf_save.h",
                        "ext_fpdf_save.h",
                        "ext_fpdf_edit.h"
                },
                link = "pdfium"
        )
},
        inherit = PdfiumViewConfigure.class,
        target = "org.swdc.pdfium.core.edit",
        global = "org.swdc.pdfium.core.PdfiumEdit"
)
public class PdfiumEditConfigure implements InfoMapper {
    @Override
    public void map(InfoMap infoMap) {

        infoMap.put(new Info("FPDF_FILEWRITE_").cppTypes("FPDF_FILEWRITE").translate());
        // do not add ext private methods.
        infoMap.put(new Info(
                "priv_fpdf_write_data",
                "priv_fpdf_readJpegBytes",
                "FWriter_",
                "PDFWriter"
        ).skip());

    }
}

PdfiumTextConfigure.java
package org.swdc.pdfium.conf;

import org.bytedeco.javacpp.annotation.Platform;
import org.bytedeco.javacpp.annotation.Properties;
import org.bytedeco.javacpp.tools.InfoMap;
import org.bytedeco.javacpp.tools.InfoMapper;

@Properties(value = {
        @Platform(
                value = "windows-x86_64",
                include = "fpdf_text.h",
                link = "pdfium"
        ),
        @Platform(
                value = "macosx-x86_64",
                include = "fpdf_text.h",
                link = "pdfium"
        )
},
        inherit = PdfiumViewConfigure.class,
        target = "org.swdc.pdfium.core.PdfiumText",
        global = "org.swdc.pdfium.core.PdfiumText"
)
public class PdfiumTextConfigure implements InfoMapper {
        @Override
        public void map(InfoMap infoMap) {

        }
}

 

PdfiumViewConfigure.java
package org.swdc.pdfium.conf;

import org.bytedeco.javacpp.annotation.Platform;
import org.bytedeco.javacpp.annotation.Properties;
import org.bytedeco.javacpp.tools.Info;
import org.bytedeco.javacpp.tools.InfoMap;
import org.bytedeco.javacpp.tools.InfoMapper;

@Properties(value = {
        @Platform(
                value = "windows-x86_64",
                include = "fpdfview.h",
                link = "pdfium",
                preload = "pdfium"
        ),
        @Platform(
                value = "macosx-x86_64",
                include = "fpdfview.h",
                link = "pdfium",
                preload = "pdfium"
        )
},
        target = "org.swdc.pdfium.core.view",
        global = "org.swdc.pdfium.core.PdfiumView"
)
public class PdfiumViewConfigure implements InfoMapper {
        @Override
        public void map(InfoMap infoMap) {

                translateType(infoMap,"fpdf_annotation_t__","FPDF_ANNOTATION");
                translateType(infoMap,"fpdf_attachment_t__","FPDF_ATTACHMENT");
                translateType(infoMap,"fpdf_avail_t__","FPDF_AVAIL");
                translateType(infoMap,"fpdf_bitmap_t__","FPDF_BITMAP");
                translateType(infoMap,"fpdf_bookmark_t__","FPDF_BOOKMARK&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非ban必选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值