PDF'yi Controller'da açma - Açık parametreleri kullanamazsınız

Kontrol cihazımda pdf açmak ve tarayıcıya aktarmak istiyorum. Açık kodları kullanmazsam bu kod çalışır. Ancak, dosya adından sonra # search = "java" gibi açık bir parametre kullanmam gerekiyor. Açık parametreleri kullanmak, bir url ise iyi çalışır ancak dosyayı açmak için adobe açık parametrelerini kullanabileceğim bir yol var.

Kullandığım kod:

private static final String DOCUMENT_LOCATION = "C:\\testPDF\\mytest.pdf#search=" + "\"" + "java" + "\"";


@RequestMapping(method=RequestMethod.GET)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

   //set some response headers 
    response.setContentType("application/pdf"); 

    InputStream in = new FileInputStream(DOCUMENT_LOCATION); 
    OutputStream out = response.getOutputStream(); 

   //Copy the bits from instream to outstream 
    byte[] buf = new byte[1024]; 
    int len; 
    while ((len = in.read(buf)) > 0) { 
        out.write(buf, 0, len); 
    } 
    in.close(); 

} 
1
Ne demek "dosya adından sonra arama parametresine" ihtiyacın var? Java'nın açılması için bir dosya adı belirliyorsunuz. Dosya sistemiyle hiçbir ilgisi olmayan rastgele parametreleri değil, sadece dosya adını verebilirsiniz.
katma yazar Dave Newton, kaynak
Nasıl emin değil ... Deneyin bir şey, tarayıcı/okuyucu arama yapmak için bir şey geri gönderilen olup olmadığını görmek için URL ile açtığınızda yanıt başlıkları kontrol etmektir.
katma yazar Dave Newton, kaynak
@Inerdia Bu benim de tahminim olurdu, ama yine de bakıyorum, çünkü ben böyle bir şey yapıyorum. URL parametreyi içeriyorsa, Reader'ın gerçek bir dosya olmadığını nasıl bildiğinden emin değilim. Veya ekin dosya adı? Dunno.
katma yazar Dave Newton, kaynak
@DaveNewton Sanırım aslında bu parametre için istemci tarafı URL'sini inceleyen Adobe Reader eklentisi, bu yüzden geri göndermek için özel bir şey yok.
katma yazar millimoose, kaynak
evet sorun bu, dosyayı açabilirim ama bunun dosyayı açmamın bir yolu olduğunu sanmıyorum. Yerel bir dizinde bir dosya açıp hala açık parametreleri kullanmanın bir yolu var mı?
katma yazar user984701, kaynak

2 cevap

Adobe Acrobat Reader tarafından desteklenen bazı parametreleri kullanmak istiyorsanız, bu parametreleri tarayıcıda veya istemci makinedeki okuyucuya bir eklenti olarak belirtmenin bir yolunu bulmanız gerekir.

Java sadece bir dosya açıp formatı hakkında hiçbir şey bilmediği için bu parametreleri hesaba katarak sunucudaki dosyayı "açmaya" imkan yoktur.

1
katma
@Dave Newton: yorumların cevap olarak gönderilmesi gerekebilir. Çünkü basit bir "bu mümkün değil" ya da her zaman geçerli bir cevaptır.
katma yazar Ralph, kaynak
Bu gerçekten bir cevap değil; Yorumların sadece bir şekli.
katma yazar Dave Newton, kaynak
belki de taktiğimi değiştirmeliyim. Bir url kullanırsam açık parametrelerin düzgün çalıştığını biliyorum. Projemde pdfs'leri tutan bir pdf dizini ekleyebilirim ve bir jsp gibi arardım. Tek sorun, pdfs'nin bayatlanabilmesi ve bunlara güncellemeler yapmam gerekmesi. En son pdfs'i almak için zamanlanmış bir görevim olabilir, ancak güncelleştirilmiş dosyaları nereye yerleştirmeliyim? Yeni bir konu oluşturmalı mıyım?
katma yazar user984701, kaynak
Dürüst olmak gerekirse benim temel sorunum, bir arama kelimesi bulunduğunda pdfs'yi aydınlatmak istiyorum, ancak Adobe'nin artık vurgulamayı desteklemediğini ve en iyi yolun bir arama parametresini iletmek olduğunu araştırmam temelli görünüyor.
katma yazar user984701, kaynak

adobe'nin artık açık parametreleri desteklemediği ortaya çıkıyor, bu yüzden yaptığım şey Adobe'de arama fonksiyonunu açan arama url parametresini geçiyordu. Unfortunatley bu sadece Firefox'ta çalışmıyor.

1
katma