From users-return-10774-archive-asf-public=cust-asf.ponee.io@pdfbox.apache.org Wed Jan 31 18:25:37 2018 Return-Path: X-Original-To: archive-asf-public@eu.ponee.io Delivered-To: archive-asf-public@eu.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by mx-eu-01.ponee.io (Postfix) with ESMTP id 7CCDE180662 for ; Wed, 31 Jan 2018 18:25:37 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 6D1DD160C35; Wed, 31 Jan 2018 17:25:37 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id B4F82160C25 for ; Wed, 31 Jan 2018 18:25:36 +0100 (CET) Received: (qmail 44774 invoked by uid 500); 31 Jan 2018 17:25:35 -0000 Mailing-List: contact users-help@pdfbox.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@pdfbox.apache.org Delivered-To: mailing list users@pdfbox.apache.org Delivered-To: moderator for users@pdfbox.apache.org Received: (qmail 36258 invoked by uid 99); 31 Jan 2018 17:23:52 -0000 X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.898 X-Spam-Level: ** X-Spam-Status: No, score=2.898 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, MANY_SPAN_IN_TEXT=1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=5cWmnm7bUUBhw6Bjna6Qqlx8CGrVYiQPm4Hh3BejlSQ=; b=UvJo0qFEc4+PfxBM3PruTvpgHH0vMajMNxCsCJfMdAS/5cFusj4uG0wfuIclKfnIj7 HuV5HuwcxuI10DNR5BxLXvgsKnMCTxi/qsGboW92mguVJOTbcHXzj/k4H/QqnDs+FJ+b YFsAQpSbBCxRRBvj4mkDUjr829JWs4eIvhxWGbE8krXoTswCVqBxnon4/JmZsl0T901l Mprk+WHZO4uIB121Cy71drqSOvYDBsNpB5Dal9HxrJwPSVT/1S2ydaoJitqqIm7EateO fNXRGOHktFRtwahHwLwJ+kgxlZABuxTCOTzcr619Tk4I1Nv0OakJ1plgeATm4dPA2Z8J OBgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=5cWmnm7bUUBhw6Bjna6Qqlx8CGrVYiQPm4Hh3BejlSQ=; b=NuVYdtPqTAYrKIRIuEO8VDOr+lEHS8sjRH2cObjUhRgNu9Bn6F+v8KVX0ZbdGsQ6h+ T2ZOoRuIGYDI3kngz09TDQSLD8kDt8/1aeu0Pk8zq4pqjy+260JOqamZfCzG1iC3rost 9k/RMZMKj3319ISj02LjVxtsfS6SWUtNrxTZhodov1O6gz81nHBfH7YBgjJpywBevGmg ObsiNeiXKfILCPPfV/YLjd3VsX72m9cNofTMxD0HPTv4gutEI+fR7reLm30/HJmlPHrI k8rMZxQxS81No4qOGEJ/B6iG+BwLgFQSo3hmHS+giAEIjx6g8b89UOTAl8bbNo9Vd5C9 RL4g== X-Gm-Message-State: AKwxytc/c5EXEDNJN+h6dAOrbYGaYIyhpX/tPj2YEGkRyfk+VrkaHHmz c5yOY5+gZfO9hE58mNnd7yO2HbJFvZSzHgHV2kR6GQ== X-Google-Smtp-Source: AH8x226wb68a9Q93T2wszd3P69mLiAeq1A8R0HzFeu2oq589Iwy73nbi93/v/a05IF6SQ2a6P5bCR32+I2Xksw5r5Ac= X-Received: by 10.107.169.142 with SMTP id f14mr36513184ioj.56.1517419425974; Wed, 31 Jan 2018 09:23:45 -0800 (PST) MIME-Version: 1.0 From: Vitaliy Kubay Date: Wed, 31 Jan 2018 09:23:45 -0800 Message-ID: Subject: Parsing Metadata - User defined schema To: users@pdfbox.apache.org Content-Type: multipart/alternative; boundary="001a11426494dc4dff056415bd1c" --001a11426494dc4dff056415bd1c Content-Type: text/plain; charset="UTF-8" I have created a custom metadata schema as follows. // MyMetadata.java public class MyMetadata extends XMPMetadata { public MyMetadata() { super(); } public MySchema createAndAddMySchema() { MySchema schema = new MySchema(this); addSchema(schema); return schema; } public MySchema getMySchema() { return (MySchema) getSchema(MySchema.class); } } // MySchema.java public class MySchema extends XMPSchema { public static final String NAMESPACE = "http://www.mydomain.com/"; public MySchema(XMPMetadata parent) { super(parent, NAMESPACE, "userdefined"); } public void setId(String id) { setTextPropertyValueAsSimple("id", id); } public String getId() { return getUnqualifiedTextPropertyValue("id"); } // ...... } Parsing Metadata - User defined schema // main.kt fun attachMetadata(...) { ... val lu = LayerUtility(wmdoc) val xobject = lu.importPageAsForm(wmdoc, wmpage) // attach metadata to the xobject val metadata = HYGMetadata() val hyg = metadata.createAndAddHYGSchema() hyg.watermarkId = "OverlayOverlay" val metadataStream = PDMetadata(outdoc) val serializer = XmpSerializer() val baos = ByteArrayOutputStream() serializer.serialize(metadata, baos, true) metadataStream.importXMPMetadata( baos.toByteArray() ) xobject.cosObject.setItem(COSName.METADATA, metadataStream) println("Num pages: " + outdoc.numberOfPages) // draw the watermark on all pages for (i in 0 .. (outdoc.numberOfPages-1)) { println(i) val cspg = PDPageContentStream(outdoc, outdoc.getPage(i), PDPageContentStream.AppendMode.APPEND, true) cspg.drawForm(xobject) cspg.close() } // Save and close inpdoc.close() outdoc.save(outputdoc) outdoc.close() } --001a11426494dc4dff056415bd1c--