我尝试了一些代码,但无法在这里工作,这是我的XML文件
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#D2D3D5"
tools:context=".View.Dashbord.AllotmentDoc">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/fulldoc"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_marginTop="10dp"
android:id="@+id/toipbar"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/logo"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginEnd="20sp"
android:layout_marginBottom="10dp"
android:src="@drawable/logo"
android:contentDescription="@string/todo" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/calibri_bold"
android:text="@string/tcb_title"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
<LinearLayout
android:layout_centerHorizontal="true"
android:layout_below="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/calibri_bold"
android:layout_marginStart="10dp"
android:text="@string/karjaloy"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/calibri_bold"
android:text="@string/dhaka"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_marginStart="10sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/rightnav"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/calibri_bold"
android:text="@string/date"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/calibri_bold"
android:text="@string/_01_01_21"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_below="@+id/rightnav"
android:id="@+id/rightnavroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/calibri_bold"
android:text="ক্রমিক নং: "
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/calibri_bold"
android:text="01"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
<TextView
android:id="@+id/titleBar"
android:layout_below="@+id/toipbar"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:text="@string/aggrement"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="SmallSp" />
<TableLayout
android:layout_centerHorizontal="true"
android:id="@+id/tableheader"
android:layout_marginTop="10dp"
android:layout_below="@+id/titleBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/product_name"
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/products_quantity"
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/mesurment"
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/total_price"
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:gravity="center"
android:text="@string/onion"
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/_2000_kg"
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="25.00"
android:gravity="right"
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="50000"
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:gravity="center"
android:text="@string/onion"
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/_2000_kg"
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/_20_00"
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="40000"
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text=" "
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text=" "
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/intotal"
android:gravity="right"
android:padding="3dip" />
<TextView
android:fontFamily="@font/calibri_bold"
android:textColor="@color/black"
android:background="@drawable/table_border"
android:text="@string/_90000"
android:gravity="right"
android:padding="3dip"
tools:ignore="RtlHardcoded" />
</TableRow>
</TableLayout>
<TextView
android:layout_marginTop="20sp"
android:text="@string/aggrement1"
android:layout_centerHorizontal="true"
android:layout_below="@+id/tableheader"
android:id="@+id/aggrement"
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/bottombar"
android:layout_centerHorizontal="true"
android:layout_below="@id/aggrement"
android:layout_marginTop="15sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:text="@string/nd_sign"
android:layout_marginEnd="10sp"
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="@string/office_prodhan"
android:layout_marginLeft="10sp"
android:layout_marginRight="10sp"
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="@string/signofbuyer"
android:layout_marginStart="10sp"
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/pdfsection"
android:layout_below="@id/fulldoc"
android:layout_centerHorizontal="true"
android:layout_marginTop="100sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="NotSibling">
<TextView
android:id="@+id/printpdf"
android:layout_marginTop="20dp"
android:gravity="center"
android:background="@drawable/editbox"
android:text="@string/prints_pdf"
android:layout_marginEnd="10dp"
android:layout_width="150dp"
android:layout_marginBottom="10sp"
android:layout_height="45sp" />
<TextView
android:id="@+id/downloadpdf"
android:layout_marginTop="20dp"
android:gravity="center"
android:layout_marginStart="10dp"
android:background="@drawable/editbox"
android:text="@string/download_pdf"
android:layout_width="150sp"
android:layout_marginBottom="10sp"
android:layout_height="45sp" />
</LinearLayout>
<TextView
android:id="@+id/gotopayment"
android:layout_centerHorizontal="true"
android:layout_below="@+id/pdfsection"
android:background="@drawable/editbox"
android:text="@string/go_to_payment"
android:gravity="center"
android:layout_marginTop="20sp"
android:layout_width="150sp"
android:layout_height="45sp"/>
</RelativeLayout>
</ScrollView>这是我正在尝试的Java代码。我尝试这个库:https://github.com/Gkemon/Android-XML-to-PDF-Generator
但不能工作。
package com.example.tcbmobileapp.View.Dashbord;
import androidx.appcompat.app.AppCompatActivity;
import com.example.tcbmobileapp.R;
import com.example.tcbmobileapp.View.Payment.PaymentOption;
import com.gkemon.XMLtoPDF.PdfGenerator;
import com.gkemon.XMLtoPDF.PdfGeneratorListener;
import com.gkemon.XMLtoPDF.model.FailureResponse;
import com.gkemon.XMLtoPDF.model.SuccessResponse;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class AllotmentDoc extends AppCompatActivity {
TextView printPDF, downloadPDF, gotoPayment;
RelativeLayout pdfmain;
String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_allotment_doc);
printPDF = findViewById(R.id.printpdf);
downloadPDF = findViewById(R.id.downloadpdf);
gotoPayment = findViewById(R.id.gotopayment);
pdfmain = findViewById(R.id.fulldoc);
gotoPayment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(AllotmentDoc.this, PaymentOption.class));
}
});
pdfmain = (RelativeLayout)findViewById(R.id.fulldoc);
printPDF.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Context context= AllotmentDoc.this;
PdfGenerator.getBuilder()
.setContext(context)
.fromLayoutXMLSource()
.fromLayoutXML(R.layout.activity_allotment_doc, R.layout.activity_allotment_doc)
.setDefaultPageSize(PdfGenerator.PageSize.A4)
.setFileName("Allotment_PaperPDF")
/* It is file name */
.setFolderName("TCBMobileApp")
.openPDFafterGeneration(true)
/* It true then the generated pdf will be shown after generated. */
.build(new PdfGeneratorListener() {
@Override
public void onFailure(FailureResponse failureResponse) {
super.onFailure(failureResponse);
}
@Override
public void showLog(String log) {
super.showLog(log);
/*It shows logs of events inside the pdf generation process*/
}
@Override
public void onSuccess(SuccessResponse response) {
super.onSuccess(response);
/* If PDF is generated successfully then you will find SuccessResponse
* which holds the PdfDocument,File and path (where generated pdf is
stored)*/
}
});
}
});
}
}基本上,我想打印我的布局(R.id.fulldoc),但我不会包括在我的pdf中的其余,所以我如何做到这一点。我想显示我的pdf,以便用户可以查看,也可以下载它使用下载按钮。
以下是图像链接:

发布于 2021-02-14 04:47:30
您可以使用这个图书馆在几行代码中轻松地完成任务。在这里,我看到您正在输入完整的布局,但是您只需要输入特定的视图,而只是像-
PdfGenerator.getBuilder()
.setContext(context)
.fromViewIDSource()
.fromViewID(activity,R.id.fulldoc) //The specifi view id you want to print
.setDefaultPageSize(PdfGenerator.PageSize.A4)
.setFileName("Allotment_PaperPDF")
.setFolderName("TCBMobileApp")
.build(new PdfGeneratorListener() {
@Override
public void onFailure(FailureResponse failureResponse) {
super.onFailure(failureResponse);
}
@Override
public void onStartPDFGeneration() {
/*When PDF generation begins to start*/
}
@Override
public void onFinishPDFGeneration() {
/*When PDF generation is finished*/
}
@Override
public void showLog(String log) {
super.showLog(log);
}
@Override
public void onSuccess(SuccessResponse response) {
super.onSuccess(response);
}
});想了解更多的信息,请看我的文档,这与你的问题有关。
首先,确保您使用的是我的最新版本v.2.0,其中我修复了应用程序级gradle中的一些bug和Java version 1.8 -
implementation 'com.github.Gkemon:XML-to-PDF-generator:2.0' 要获得一个示例,请参见这里。
https://stackoverflow.com/questions/66016722
复制相似问题