[Java lista] referencia
Zsombor
gzsombor at gmail.com
2010. Május. 6., Cs, 15:49:12 CEST
2010/5/6 Laja <laja at freemail.hu>
> Hi!
>
> Ăjabb ĂŠrdekes problĂŠmĂĄm van. Hogyen lehet valahogy kikĂŠnyszerĂteni, hogy
> egy ĂŠrtĂŠkadĂĄs cĂm (referencia, pointer) szerint tĂśrtĂŠnjen? Ărok egy
> pĂŠldĂĄt, hogy ĂŠrthetĹ legyen:
>
> Van egy fĂźggvĂŠny, ami paramĂŠterkĂŠnt kap egy PDF ĂĄllomĂĄnyt, amit aztĂĄn
> mĂłdosĂt. Az ĂĄllomĂĄnyt kaphatja memĂłriĂĄban (byte tĂśmbkĂŠnt), vagy az
> ĂĄllomĂĄnynevet (azĂŠrt a kavarĂĄs, hogy legyen is nĂŠmi ĂŠrtelme a pĂŠldĂĄnak).
>
> private void processX(Object pdf){
> try{
> //beolvassuk az ĂĄllomĂĄnyt
> PDDocument pdd=null;
> if(pdf instanceof String){ //ĂĄllomĂĄnynĂŠv van megadva
> pdd=PDDocument.load((String)pdf);
> }else{ //byte[] van megadva
> ByteArrayInputStream is=new ByteArrayInputStream((byte[])pdf);
> pdd=PDDocument.load(is);
> is.close();
> }
>
> //mindenfĂŠlĂŠt csinĂĄlunk a pdd-vel
>
> //eredmĂŠnyt kiĂrjuk
> if(pdf instanceof String){ //ĂĄllomĂĄnynĂŠv van megadva
> pdd.save((String)pdf);
> }else{ //byte[] van megadva
> ByteArrayOutputStream os=new ByteArrayOutputStream();
> pdd.save(os);
> pdf=os.toByteArray();
> os.close();
> }
>
> pdd.close();
> }catch(java.lang.Exception exc){
> System.err.println("ERROR exc="+exc);
> }
> }
>
> A fileneves rĂŠsszel nincs is gond, de a tĂśmbĂśssel igen. Ugyanis a
> 'pdf=os.toByteArray();' ĂŠrtĂŠkadĂĄs sorĂĄn egy Ăşj lokĂĄlis pdf jĂśn lĂŠtre,
> ami nyilvĂĄn nem jĂł, mert Ăgy elvesznek a mĂłdosĂtĂĄsok. Az 'arraycopy' nem
> jĂł, mert az Ăşj tĂśmb nagyobb is lehet. Hogy lehet megoldani, hogy az
> eredeti 'pdf'-et Ărjam felĂźl??
>
> KerĂźlĹ megoldĂĄs, hogy a pdf-et belerakom egy Vector-ba, ĂŠs azt adom ĂĄt
> paramĂŠterkĂŠnt (gondolom ez mĹąkĂśdik, mivel csak a Vector egy elemĂŠt Ărom
> felĂźl, a Vector ugyanaz marad), de ha lehet ez nĂŠlkĂźl szeretnĂŠm megoldani.
>
> Laja
>
Ez elĂŠg rĂŠmisztĹ Ăśtletnek tĂźnĂk, sosem szabad elfelejteni, hogy a tĂpusok a
barĂĄtaid, valamint a fĂźggvĂŠnynek lehet kimeneti ĂŠrtĂŠket megadni.
TehĂĄt, rakd szĂŠt hĂĄrom fĂźggvĂŠnybe a dolgot :
public void processPdf(String pdfFile) {
PDDocument pdd=PDDocument.load(pdfFile);
processPdd(pdd);
pdd.save(pdfFile);
}
public byte[] process(byte[] input) {
ByteArrayInputStream is=new ByteArrayInputStream(input);
PDDocument pdd=PDDocument.load(is);
return pdd.toByteArray();
}
Ăźdv
Zs
--------- következő rész ---------
Egy csatolt HTML ĂĄllomĂĄny ĂĄt lett konvertĂĄlva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20100506/89cbffde/attachment.html
További információk a(z) Javalist levelezőlistáról