标签: android-print-framework

如何使用Android 4.4打印框架打印PDF

如何使用Android 4.4打印框架打印已下载的​​PDF?

我查看了开发人员文档.但没有运气.任何例子都会有所帮助

android android-4.4-kitkat android-print-framework

38
推荐指数
1
解决办法
2万
查看次数

通过蓝牙打印机Android打印Pdf文件

在我的项目中需要通过蓝牙打印机打印Pdf文件.我写了一个代码,通过pdf打印它适用于文本,

但我想在蓝牙打印机上打印PDF文件.

我的java代码打印文本

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv= (ListView) findViewById(R.id.listView1);
     //   listdata(lv);
        try {

        // we are goin to have three buttons for specific functions
        Button openButton = (Button) findViewById(R.id.open);
        Button sendButton = (Button) findViewById(R.id.send);
        Button closeButton = (Button) findViewById(R.id.close);
        Button btnco= (Button) findViewById(R.id.btnconnect);

        btnco.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                try {
                    findBT();
                    openBT();
                } catch (Exception ex) {
                }
            }
        });
        myLabel = (TextView) findViewById(R.id.label);
        myTextbox = …
Run Code Online (Sandbox Code Playgroud)

android bluetooth android-bluetooth android-print-framework

20
推荐指数
1
解决办法
8149
查看次数

Android 以编程方式打印 PDF

我必须在 Android 4.4 中开发打印功能我想开发以下功能: - 使用 Android 4.4 打印框架 - 从 SD 卡打印 pdf(无需重新生成) - 配置如:份数、页面选择

我知道这在 Android 4.4 中是可能的。但我想以编程方式从 SD 卡打印 pdf。

pdf android android-print-framework

8
推荐指数
2
解决办法
1万
查看次数

隐藏Android KitKat 4.4打印对话框

我正在开发一个需要打印的自助服务终端应用程序.我有打印功能,但问题是它显示了一个对话框,作为一个自助服务终端应用程序,我们需要保持简单并限制用户可以做什么.

有没有办法打印而不显示对话框?

我不在乎它是否打印到"默认"打印机或者是否需要将参数传递给它.

我用这个作为参考:http://developer.android.com/training/printing/html-docs.html

printing android android-4.4-kitkat android-print-framework

7
推荐指数
0
解决办法
1908
查看次数

如何从android上的打印服务中删除不存在的打印机?

我正在 android 上开发打印服务。可用打印机列表经常更改。但是,我无法找到删除不存在的打印机(即在某些时候可用的打印机)的方法。这些打印机在我的测试设备上显示为灰色。

我可以在 PrinterDiscoverySession 的 onStartPrinterDiscovery() 和 onValidatePrinters() 方法中看到“僵尸”打印机,但不知道如何摆脱它们。使用现有打印机调用会话的 addPrinters() 或使用不存在的打印机调用 removePrinters() 没有帮助。

我很感激任何建议。谢谢。

android-service android-print-framework

7
推荐指数
1
解决办法
2555
查看次数

Android 4.4打印-“ java.lang.IllegalStateException:打印已在等待处理”

我正在研究在android上打印webview。我遇到了一个非法状态异常的问题。仅当我非常快地两次调用“打印”两次时,才会发生这种情况。崩溃也不在我的调用栈中,因此使用try-catch无效。

注意:我正在通过反射进行调用(如何通过KitKat 4.4打印API通过反射来打印WebView?),但是我很确定使用API​​会对我做同样的事情(但我最终会检查)(编辑:刚刚检查过。制作了一个带有Web视图和按钮的简单应用程序。当我两次快速单击按钮时,整个应用程序崩溃了。)

堆栈跟踪:

java.lang.IllegalStateException: printing is already pending
  at com.android.org.chromium.android_webview.AwPdfExporter.exportToPdf(AwPdfExporter.java:51)
  at com.android.org.chromium.android_webview.AwPrintDocumentAdapter.exportPdf(AwPrintDocumentAdapter.java:100)
  at com.android.org.chromium.android_webview.AwPrintDocumentAdapter.onWrite(AwPrintDocumentAdapter.java:81)
  at android.print.PrintManager$PrintDocumentAdapterDelegate$MyHandler.handleMessage(PrintManager.java:609)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:137)
  at android.app.ActivityThread.main(ActivityThread.java:4998)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:515)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
  at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

问题是:如何避免这种情况?

编辑:这是我的测试应用程序。如果在对话框出现之前单击两次按钮,则会出现上面显示的异常。在不使用“ hacky”超时的情况下如何避免这种情况。

MainActivity.java:

package com.example.test;

import android.os.Bundle;
import android.print.PrintAttributes;
import android.print.PrintDocumentAdapter;
import android.print.PrintManager;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button …
Run Code Online (Sandbox Code Playgroud)

java printing android android-4.4-kitkat android-print-framework

5
推荐指数
1
解决办法
1219
查看次数

使用Android 4.4打印框架打印多个PDF页面

我想请求帮助.我想要打印/创建pdf文档.我可以创建一个pdf页面并通过画布将数据写入此页面.问题是我不知道如何创建另一个pdf页面并继续写入第二页.如果有人有任何经验,我会非常乐于助人,我会花很多时间来做这件事.

我用这个:https://developer.android.com/reference/android/print/pdf/PrintedPdfDocument.html

我的部分代码在那里:

 private void doPrint(int _docNumber){
    docNumber = _docNumber;
    //get Printmanager instance
    PrintManager printManager = (PrintManager)this.getSystemService(Context.PRINT_SERVICE);
    // Set job name, which will be displayed in the print queue
    String jobName = getString(R.string.app_name) + " dokument";
    // Start a print job, passing in a PrintDocumentAdapter implementation
    // to handle the generation of a print document
    printManager.print(jobName, new MyPrintDocAdapter(), null);

    Toast.makeText(getBaseContext(), "Príprava na tla?...", Toast.LENGTH_SHORT).show();
}

public class MyPrintDocAdapter extends PrintDocumentAdapter
{
    Context context;
    private int pageHeight;
    private …
Run Code Online (Sandbox Code Playgroud)

pdf android android-4.4-kitkat android-print-framework

5
推荐指数
0
解决办法
1946
查看次数

Android:对布局进行膨胀并将其写入PDF会生成空白PDF

当用户选择活动中的共享按钮时,我想夸大布局,填充它,然后使用新的打印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
        ...
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这会输出一个空白的pdf文档.但是,当我使用屏幕上已存在的视图(在onCreateView(..)中膨胀)时,它会按预期显示在pdf中.

我很感激任何帮助.

pdf android android-layout android-print-framework

5
推荐指数
1
解决办法
2133
查看次数

在android中创建,显示和打印pdf文档的最佳策略是什么?

我打算使用内置的android pdf库.在我的应用程序中,我需要显示一个可能包含多个页面的pdf报告.用户应该能够打印这些页面.使用PrintDocumentAdapter进行打印看起来非常简单,但对我来说不清楚的是创建pdf的最佳方法是什么.我知道您可以使用View/canvas生成PdfDocument,或者在绘制线条,文本,绘画等时采用更"低级"的方法.

我看到三种可能性:

  1. 为每个页面创建一个视图.用户可以根据需要在视图之间导航并进行打印.但是我不清楚如何为每个页面/视图生成pdf.我的意思是,如果我正在查看页面/视图1,是的,我可以轻松地创建一个pdf,但其他页面呢?是的,我可以在内存中有这个,但我发现如果它们没有在屏幕上显示,它们会创建空的pdf.我不想让用户单独打印每个页面.

  2. 创建pdf文档(低级方法),集成pdf阅读器,并从那里显示/打印pdf.

  3. 为用户可以浏览的每个页面创建一个视图.调用print选项时,再次生成pdf文档(低级方法)

显然,选项1是首选方法,但我不清楚如何做到这一点.当然,我可能会遗漏一些东西,所以任何帮助将不胜感激!

android android-print-framework android-pdf-api

5
推荐指数
1
解决办法
1588
查看次数

在Android中生成并打印特定大小的PDF

我正在使用Android应用程序,并且想生成和打印PDF。但是我遇到了麻烦。我需要生成PDF80mm的width,并且height可能会有所不同。

我正在尝试:

public class PDFGenerator implements Runnable {
    private Context ctx;
    private View view;
    private Intent mShareIntent;
    private OutputStream os;

    public PDFGenerator(Context ctx, View view) {
        this.ctx = ctx;
        this.view = view;
        makeAndSharePDF();
    }

    public void makeAndSharePDF() {
        new Thread(this).start();
    }

    @TargetApi(Build.VERSION_CODES.KITKAT)
    public void run() {
        PrintAttributes printAttrs = new PrintAttributes.Builder().
                setColorMode(PrintAttributes.COLOR_MODE_MONOCHROME).
                setMediaSize(PrintAttributes.MediaSize.ISO_C7).
                setResolution(new PrintAttributes.Resolution("zooey", ctx.PRINT_SERVICE, 500, 500)).
                setMinMargins(PrintAttributes.Margins.NO_MARGINS).
                build();

        PdfDocument document = new PrintedPdfDocument(ctx, printAttrs);
        PdfDocument.PageInfo pageInfo = new  PdfDocument.PageInfo.Builder(view.getWidth(), view.getHeight(), 1).create();
        PdfDocument.Page …
Run Code Online (Sandbox Code Playgroud)

pdf android android-print-framework

5
推荐指数
1
解决办法
3000
查看次数