PDFBoxを使って制限を設定する

AccessPermissionでいろいろと設定した後にStandardProtectionPolicyでOwnerパスワードを設定して、PDDocumentに渡せば良い。

        try (PDDocument document = PDDocument.load(new File("input.pdf"))) {
            AccessPermission ap = new AccessPermission();
            ap.setCanAssembleDocument(false);
            ap.setCanExtractContent(false);
            ap.setCanExtractForAccessibility(false);
            ap.setCanFillInForm(false);
            ap.setCanModify(false);
            ap.setCanModifyAnnotations(false);
            ap.setCanPrint(false);
            ap.setCanPrintDegraded(false);
            // ap.setReadOnly();
            StandardProtectionPolicy spp = new StandardProtectionPolicy("12345", "", ap);
            spp.setEncryptionKeyLength(128);
            document.protect(spp);
            document.save(new File("output.pdf"));
        } catch (IOException e) {
            logger.error("Failed to write info.", e);
        }

カテゴリー: Java | PDFBoxを使って制限を設定する はコメントを受け付けていません。

PDFBoxを使ってプロパティを変更する

PDDocumentからPDDocumentInformationを取得して、更新すれば良い。

        try (PDDocument document = PDDocument.load(new File("input.pdf"))) {
            PDDocumentInformation info = document.getDocumentInformation();
            info.setCreator("新しい製作者");
            info.setAuthor("新しい著者");
            info.setCreationDate(Calendar.getInstance());
            info.setKeywords("新しいキーワード");
            info.setModificationDate(Calendar.getInstance());
            info.setSubject("新しい件名");
            info.setTitle("新しいタイトル");
            document.save(new File("output.pdf"));
        } catch (IOException e) {
            logger.error("Failed to write info.", e);
        }

カテゴリー: Java | PDFBoxを使ってプロパティを変更する はコメントを受け付けていません。

PyPIにリリースする方法

Pythonで利用するモジュールたちはpipでインストールできると便利かと思いますが、pipでインストールできるようなモジュールを作るためにはPyPIにリリースする必要があります。簡単にリリースできるので、その方法をまとめると、まずは、

  • PyPI: https://pypi.python.org/
  • テスト用PyPI: https://testpypi.python.org/

にそれぞれでアカウントを登録します。テスト用はリリーステスト用として利用できます。アカウントは共通ではないので、それぞれに作る必要があります。そしたら、~/.pypircを作成します。

[distutils]
index-servers =
  pypi
  pypitest

[pypi]
repository=https://pypi.python.org/pypi
username=アカウント名
password=パスワード

[pypitest]
repository=https://testpypi.python.org/pypi
username=アカウント名
password=パスワード


次にリリースに必要なモジュールをインストールします。

$ pip install wheel
$ pip install twine


あとはリリースしたいモジュールを作成しておき(つまり、setup.pyとか)、まずはリリース物を作成します。

$ python setup.py sdist bdist_wheel


テスト用サイトへリリースします。

$ twine register dist/*.tar.gz -r pypitest
$ twine register dist/*.whl -r pypitest
$ twine upload dist/* -r pypitest


順に実行して特にエラーが出なければ、https://testpypi.python.org/で確認します。
テスト用サイトで問題がなければ、本番リリースします。

$ twine register dist/*.tar.gz -r pypitest
$ twine register dist/*.whl -r pypitest
$ twine upload dist/* -r pypitest


あとは、https://pypi.python.org/で確認します。
以上でリリース完了です。

カテゴリー: Python | PyPIにリリースする方法 はコメントを受け付けていません。