7

ユーザーがアクティビティ内で共有ボタンを選択すると、レイアウトを膨らませてデータを入力し、新しい印刷 API を使用してそのレイアウトを PDF に書き込みます。

私のフラグメントでは、

@TargetApi(Build.VERSION_CODES.KITKAT)
  public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
    switch (item.getItemId()) {
      case R.id.menu_item_share_context:
        LayoutInflator inflator = getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View container = inflator.inflate(R.layout.person_share, null, false);
        TextView name = (TextView)topContainer.findViewById(R.id.person_name);
        name.setText("Test Name");
        PdfDocument document = new PdfDocument();
        PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(612, 792, 1).create()
        PdfDocument.Page page = document.startPage(pageInfo)
        container.draw(page.getCanvas());
        document.finishPage(page)

        // write pdf
        ...

残念ながら、これは空のpdfドキュメントを出力します。ただし、画面に既に存在するビュー (onCreateView(..) で膨張) を使用すると、期待どおりに pdf に表示されます。

助けていただければ幸いです。

4

1 に答える 1