如何在Kotlin上使用iText以更高的分辨率或质量打印pdf

问题描述

当我打印使用iText制作的pdf时,分辨率太低。 我尝试通过设置compress来提高质量: pdfWritter.compressionLevel = 0,但不走运。 我正在寻找要打印的pdf更好的质量。实际上只有它有字母,并且不会改变。

CreatePDF.kt

org.eclipse.birt.runtime

ViewPDFActivity.kt

val folder = File(context.externalCacheDir?.absolutePath.toString())
if (!folder.exists())   folder.mkdirs()
pdfFile = File(folder,"$fileName.pdf")
document = Document(PageSize.LETTER,0F,0F)
pdfWritter.compressionLevel = 0
pdfWritter = PdfWriter.getInstance(document,FileOutputStream(pdfFile))
document.open()
document.add(Paragraph("Dra. Mariana Castro",DefaultFont)
document.close()
val intent = Intent(context,ViewPDFActivity::class.java)
intent.putExtra("path",pdfFile.absolutePath)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(intent)

activity_view_pdf.xml

class ViewPDFActivity : AppCompatActivity() {

private lateinit var file:File

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_view_pdf)
    val bundle: Bundle? = intent.extras
    if(bundle != null){
        file = File(bundle.getString("path",""))
    }
    pdfViewAct.fromFile(file)
        .enableSwipe(true)
        .swipeHorizontal(false)
        .enableDoubletap(true)
        .enableAntialiasing(true)
        .load()
    printPDF.setOnClickListener {
        val v: View = pdfViewAct
        val bmp =
            Bitmap.createBitmap(v.getWidth(),v.getHeight(),Bitmap.Config.ARGB_8888)
        val c = Canvas(bmp)
        v.draw(c)
        val photoPrinter = PrintHelper(this)
        photoPrinter.scaleMode = PrintHelper.SCALE_MODE_FIT
        if (bundle != null) {
            bundle.getString("path")?.let { it1 -> photoPrinter.printBitmap(it1,bmp) }
        }
    }
    backButton.setOnClickListener {
        finish()
    }
}

创建的pdf文件是这样的:PDF Result。即使使用pageSize.A0增加页面大小,质量也很差。

解决此问题的一些想法?我已经尝试了一切。预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)