стварэнне справаздачы ў фармаце PDF ў playframework з дапамогай модуля ў фармаце PDF

У мяне ёсць праблема ў дачыненні да генерацыі справаздач (PDF) у playframework app.I усталяваны PDF 0.7 <�код /> модуль.

Мне трэба, каб паказаць карыстачу спіс прадукт з, іх кошт і агульная сума ад продажу ў Інтэрнэце page.If карыстальнік хоча так, ён павінен быць у стане стварыць справаздачу ў фармаце PDF аднаго і таго ж .Я думаў аб прадастаўленні карыстачу спасылку на вэб-старонку, націснуўшы на якую, у фармаце PDF дакумент, які змяшчае адфарматаваны дадзеныя якая адкрывае .the элемент можа захаваць яго ў любым жаданым месцы.

Я паслаў HashMap , які змяшчае асобнікі назвы прадукту і іх колькасці ў template.From гэтай інфармацыю, можна разлічыць індывідуальныя цэны, агульныя цэны і г.д., і вынесці ў выглядзе табліцы. Зараз гэта павінна быць пакладзеным у pdf.For, што я выклікаю метад кантролера (напрыклад createReport (...) ) і перадаць той жа HashMap .У метад кіравання, я павінен фарматаваць дадзеныя нейкім чынам і візуалізацыі з дапамогай renderPDF() .

Такім чынам, я пасылаю HashMap назад і наперад, і мне цікава, калі гэта правільны шлях ..

Калі ласка, парайце.

Crtlr.java фрагмент кода:

public static void showListings(){
   HashMap map = createProductQtyMap();
   render(map);
}

showListings шаблон фрагмент кода:

<table>
#{list items:map.keySet() , as:'product'}
<tr>
<td>${product.getName()} </td>
<td>${map.get(product)} </td>
<td>${product.price} </td>
<td>${product.price * map.get(product)} </td>
</tr>
#{/list}    
</table>
...
create report

Ctrlr.java

public static void createReport(HashMap map){
   StringBuffer html=new StringBuffer("<html><body>");
   //iterate thru map and create table rows as done in template
   html.append("</body></html>");

   String title= "my report";
   play.modules.pdf.PDF.renderPDF(html.toString(),title);

}

ў шаблоне createReport

...
<div id="report">
   ${html.raw()}
</div>
0

1 адказы

Калі я не зразумеў вашыя патрабаванні, гэта не правільны падыход. Я лічу, што вы павінны рабіць наступнае.

public static void createReport() {
   String title = "my report";
   HashMap map = createProductQtyMap();
   play.modules.pdf.PDF.renderPDF(map,title);   
}

і ў шаблоне createReport, вы проста робіце, як і любы іншы від HTML, так што вы можаце ў значнай ступені скапіяваць і ўставіць код з showListings. Калі вы жадаеце проста выкарыстоўваць той жа выгляд, то пераканайцеся, што вы робіце вашыя спасылкі, малюнкі, CSS і г.д. абсалютныя шляху, а таксама пераканайцеся, што CSS не настроены толькі з экрана.

1
дададзена