Niit - Ict Hà Nội » Tin tức » Tin tức công nghệ » Android : In tài liệu HTML
Android : In tài liệu HTML

Khóa học lập trình Android. in ra nội dung ngoài ảnh đơn giản trên Android yêu cầu soạn thảo văn bản và đồ họa trong tài liệu in. Khung công tác Android cung cấp một cách để sử dụng HTML để soạn một tài liệu và in nó với mã tối thiểu.

 

Trong Android 4.4 (API cấp 19), WebViewlớp đã được cập nhật để cho phép in nội dung HTML. Lớp này cho phép bạn tải một tài nguyên HTML cục bộ hoặc tải xuống một trang từ web, tạo một lệnh in và chuyển nó sang các dịch vụ in của Android.

 

Bài học này cho bạn thấy làm thế nào để nhanh chóng xây dựng một tài liệu HTML có chứa văn bản và đồ họa và sử dụng WebView để in nó.

 

Khóa học lập trình Android

 

Tải một tài liệu HTML

Khóa học lập trình Android In một tài liệu HTML có WebView liên quan đến việc tải một tài nguyên HTML hoặc xây dựng một tài liệu HTML dưới dạng một chuỗi. Phần này mô tả cách xây dựng một chuỗi HTML và tải nó vào WebView để in.

 

Đối tượng dạng xem này thường được sử dụng như một phần của bố cục hoạt động. Tuy nhiên, nếu ứng dụng của bạn không sử dụng WebView, bạn có thể tạo một thể hiện của lớp cụ thể cho mục đích in ấn. Các bước chính để tạo chế độ xem in tùy chỉnh này là:

 

Tạo một lệnh Web ViewClient bắt đầu công việc in sau khi tài nguyên HTML được tải.

 

Nạp tài nguyên HTML vào WebView đối tượng.

 

Mẫu mã sau đây minh họa cách tạo đơn giản WebViewClient và tải một tài liệu HTML được tạo khi đang di chuyển:

KOTLIN

JAVA

 

 


		
 
 

private var mWebView : WebView ? = Vô tư vui vẻ doWebViewPrint () { // Tạo một đối tượng đặc biệt cho WebView in val WebView = WebView ( hoạt động )     WebView . webViewClient = đối tượng : WebViewClient () { override fun shouldOverrideUrlLoading ( xem : WebView , yêu cầu : WebResourceRequest ) = false    

        override fun onPageFinished ( xem : WebView , url : String ) { Đăng nhập . i ( TAG , "trang tải xong url $" )             createWebPrintJob ( xem )             mWebView = null } } // Tạo một tài liệu HTML khi đang chạy: val htmlDocument = "<html> <body> <h1> Nội dung kiểm tra </ h1> <p> Kiểm tra, thử nghiệm, thử nghiệm ... </ p> </ body> </ html> "     webView .    
             

, htmlDocument , "text / HTML" , "UTF-8" , null ) // Giữ tham chiếu đến đối tượng WebView cho đến khi bạn chuyển PrintDocumentAdapter // tới PrintManager     mWebView = webView }   

 

Lưu ý: Hãy chắc chắn rằng cuộc gọi của bạn để tạo ra một công việc in xảy ra trong onPageFinished() phương pháp của WebViewClient bạn đã tạo trong phần trước. Nếu bạn không đợi cho đến khi quá trình tải trang hoàn tất, đầu ra in có thể không đầy đủ hoặc trống hoặc có thể không hoàn toàn.

 

Lưu ý: Mã ví dụ trên giữ một thể hiện của WebView đối tượng sao cho nó không phải là rác được thu thập trước khi lệnh in được tạo ra. Hãy chắc chắn rằng bạn làm tương tự trong việc thực hiện của riêng bạn, nếu không quá trình in có thể thất bại.

 

Khóa học lập trình Android bạn muốn bao gồm đồ họa trong trang, hãy đặt các tệp đồ họa vào assets/ thư mục dự án của bạn và chỉ định một URL cơ sở trong tham số đầu tiên của loadDataWithBaseURL() phương thức, như được hiển thị trong ví dụ mã sau:

KOTLIN

JAVA

 

 


		
 
 
webView . loadDataWithBaseURL ( "tệp: /// android_asset / images /" ,         htmlBody , "văn bản / HTML" , "UTF-8" , null )
        

 

Bạn cũng có thể tải trang web để in bằng cách thay thế loadDataWithBaseURL() phương thức bằng loadUrl() cách hiển thị bên dưới.

KOTLIN

JAVA

 

 


		
 
 
webView . loadUrl ( "http://developer.android.com/about/index.html" )

 

Khi sử dụng WebView để tạo tài liệu in, bạn nên biết các hạn chế sau:

 

Bạn không thể thêm đầu trang hoặc chân trang, bao gồm số trang, vào tài liệu.

 

Các tùy chọn in cho tài liệu HTML không bao gồm khả năng in phạm vi trang, ví dụ: In trang 2 đến 4 của tài liệu HTML 10 trang không được hỗ trợ.

 

Một trường hợp WebView chỉ có thể xử lý một lệnh in tại một thời điểm.

 

Tài liệu HTML chứa các thuộc tính in CSS, chẳng hạn như thuộc tính phong cảnh, không được hỗ trợ.

 

Bạn không thể sử dụng JavaScript trong tài liệu HTML để kích hoạt in.

 

Lưu ý: Nội dung của WebView đối tượng được bao gồm trong bố cục cũng có thể được in khi nó đã tải một tài liệu.

 

Nếu bạn muốn tạo một đầu ra in tùy chỉnh hơn và có toàn quyền kiểm soát nội dung vẽ trên trang được in, hãy chuyển sang bài học tiếp theo: In bài học tài liệu tùy chỉnh .

Tạo lệnh in

Sau khi tạo WebView và tải nội dung HTML của bạn, ứng dụng của bạn gần như được thực hiện với một phần của quá trình in. Các bước tiếp theo là truy cập PrintManager, tạo bộ điều hợp in và cuối cùng, tạo công việc in. Ví dụ sau minh họa cách thực hiện các bước sau:

KOTLIN

JAVA

 

 


		
 
 

tin vui createWebPrintJob ( WebView : WebView ) { // Lấy một ví dụ PrintManager ( hoạt động ?. getSystemService ( Context . PRINT _ DỊCH VỤ ) như ? PrintManager ) ?. cho { printManager -> val jobName = "$ {getString (R.string.app_name)} Tài liệu" // Lấy một bản in của bộ điều hợp in val = Adapter = webView . createPrintDocumentAdapter ( jobName   

        ) // Tạo lệnh in với tên và trình điều khiển cá thể         printManager . print (                 jobName ,                 printAdapter , PrintAttributes . Builder (). build () ). cũng { printJob -> // Lưu đối tượng công việc để kiểm tra trạng thái sau này             mPrintJobs + = printJob } } }

 

Ví dụ này lưu một thể hiện của PrintJob đối tượng để ứng dụng sử dụng, không cần thiết.

 

Khóa học lập trình Android Ứng dụng của bạn có thể sử dụng đối tượng này để theo dõi tiến độ của lệnh in khi đang được xử lý.

 

Cách tiếp cận này hữu ích khi bạn muốn theo dõi trạng thái của lệnh in trong ứng dụng của bạn để hoàn thành, thất bại hoặc hủy người dùng. 

 

Việc tạo thông báo trong ứng dụng là không cần thiết vì khung in tự động tạo thông báo hệ thống cho lệnh in.