Android ZXing在大型XML数据集上生成PDF417条码

Android ZXing在大型XML数据集上生成PDF417条码,android,xml,zxing,pdf417,Android,Xml,Zxing,Pdf417,我有一个相当大的XML数据集,例如: <book id=“…” serial_no="8472385" height="210" width="600" books="1"> <content> <barcode encoding="code128c" data1="22" data2="50" description="Barcode 1”>…</barcode> <barcode encoding="code1

我有一个相当大的XML数据集,例如:

  <book id=“…” serial_no="8472385" height="210" width="600" books="1">
  <content>
     <barcode encoding="code128c" data1="22" data2="50" description="Barcode 1”>…</barcode>
     <barcode encoding="code128c" data1="510" data2="75" description="Barcode 2”>…</barcode>
     <chapter sections="8" data1="214" data2="12" description=“Info 1”>…</chapter>
     <chapter sections="11" data1="88" data2="63" description=“Info 2”>…</chapter>
     <chapter sections="16" data1="88" data2="42" description=“Info 3”>…</chapter>
     <chapter sections="13" data1="88" data2="83" description=“Info 4”>…</chapter>
     <chapter sections="11" data1="88" data2="105" description=“Info 5“>Mon, 24 Aug 2015, 8:30am</chapter>
     <chapter sections="18" data1="286" data2="120" description=“Info 6”>…</chapter>
     <chapter sections="19" data1="466" data2="12" description=“Info 7“>…</chapter>
     <chapter sections="11" data1="496" data2="26" description=“Info 8“>…</chapter>
     <chapter sections="9" data1="531" data2="28" description=“Info 9“>…</chapter>
     <chapter sections="11" data1="497" data2="12" description=“Info 10“>8:30am</chapter>
     <chapter sections="12" data1="88" data2="147" description=“Info 11“>…</chapter>
     <chapter sections="10" data1="88" data2="125" description=“Info 12”>…</chapter>
     <chapter sections="13" data1="338" data2="158" description=“Info 13”>…</chapter>
     <chapter sections="9" data1="81" data2="192" description="book Id”>…</chapter>
     <chapter sections="8" data1="394" data2="192" description="book Id”>…</chapter>
     <chapter sections="8" data1="140" data2="12" description=“Info 14”>…</chapter>
     <chapter sections="9" data1="132" data2="192" description="" />
     <chapter sections="10" data1="88" data2="177" description=“Info 15“ />
     <chapter sections="12" data1="88" data2="163" description="Some sample data”>…</chapter>
     <chapter sections="8" data1="286" data2="192" description="Time Stamp">2015-08-19 10:00:55</chapter>
     <logo data1="402" data2="37" description="Logo">cache/images/logoSample.pcx</logo>
     <logo_gif data1="402" data2="37" description="Logo">cache/images/book_….gif</logo_gif>
     <chapter sections="12" data1="446" data2="187" description="Price">$100.00</chapter>
  </content>
  </book>

…
…
…
…
…
2015年8月24日星期一上午8:30
…
…
…
…
上午8:30
…
…
…
…
…

您的示例长度为2300多个字符,超过了文本的限制-2个字符x 900个码字=1800个文本字符。看

您可能想考虑使用比XML更不冗长的格式进行数据传输。


只是附加信息-如果需要对大型数据集进行编码,您可以搜索“PDF417缝合”。这意味着您将有多个PDF条形码来保存文档,并要求读者将其放在一起。

您确实意识到,您的示例长度为2300多个字符,这超过了文本的限制-每900个码字2个字符=1800个文本字符。另外,这可能有助于理解为何将XML编码到PDF417中以显示在Android屏幕上的用例,即谁/什么在阅读它?我没有意识到-谢谢!它应该是机器可读的-书的东西是一个“封面”:)愚蠢的我,我只是听了客户的要求…只是额外的信息-如果你需要编码大数据集,你可以寻找“PDF417缝合”。所有这一切意味着你将有多个PDF条形码来保存一个文档,并要求读者将其放在一起。还有一个明显的问题是压缩数据和/或使用比XML更不详细的形式。谢谢,你能把你的评论复制并粘贴到一个答案中,这样我就可以接受了吗?
    ImageView book = (ImageView) mRootView.findViewById(R.id.book_image);
    Display display = getActivity().getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.x / 2;
    String raw = bookXmlString.replace("<","&lt;").replace(">","&gt;");

    MultiFormatWriter writer = new MultiFormatWriter();
    try {
        Log.e("PDF_417", String.format("w: %d, h: %d, d: %s", width, height, raw));
        BitMatrix bm = writer.encode(raw, BarcodeFormat.PDF_417, width, height);
        Bitmap ImageBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        for (int i = 0; i < width; i++) {//width
            for (int j = 0; j < height; j++) {//height
                ImageBitmap.setPixel(i, j, bm.get(i, j) ? Color.BLACK : Color.WHITE);
            }
        }            
        book.setImageBitmap(ImageBitmap);
    } catch (WriterException e) {
        Log.e("PDF_417", e.getMessage());
    }