#android #pdf
Вопрос:
Я хочу скопировать pdf-файл с URL-адреса и сохранить содержимое pdf-файла в растровом изображении. Я использовал следующий код, но я не получаю его, так как это содержимое pdf. Это дает что-то в другом формате.Пожалуйста, помогите мне и скажите, где я ошибаюсь.
public class MyActivity extends ListActivity implements OnClickListener
{
Button addResumeFromUrlBtn;
EditText addResumeFromUrlTxt;
String resume;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.resumeselection);
addResumeFromUrlTxt = (EditText)findViewById(R.id.addResumeFromURLTxt);
addResumeFromUrlBtn = (Button)findViewById(R.id.addResumeFromURLBtn);
addResumeFromUrlBtn.setOnClickListener(this);
}
public String readPDF() throws Exception
{
BufferedReader in = null;
String page = "";
try {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI("http://www.inkwelleditorial.com/pdfSample.pdf"));
HttpResponse response = client.execute(request);
in = new BufferedReader
(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line NL);
}
in.close();
page = sb.toString();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {e.printStackTrace();}
}
}
return page;
}
public void onClick(View v)
{
if(v == addResumeFromUrlBtn)
{
try {
resume = readPDF();
} catch (Exception e)
{
e.printStackTrace();
}
RelativeLayout l = (RelativeLayout)findViewById(R.id.resumeRelativelayout);
TextView txt = new TextView(this);
txt.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
txt.setDrawingCacheEnabled(true);
txt.setText(resume);
txt.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
txt.layout(0, 0, txt.getMeasuredWidth(), txt.getMeasuredHeight());
txt.setDrawingCacheEnabled(false);
l.addView(txt);
}
}
}
Спасибо
Монали
Комментарии:
1. Я хотел, чтобы чтение PDF было таким же легким
Ответ №1:
File file = new File(fileLocation);
if (file.exists()) {
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW); //Set Intent action view pdf file
intent.setDataAndType(path, "application/pdf"); //Set data type
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent); //Start Activity
} catch (ActivityNotFoundException e) {
Toast.makeText(OpenPdf.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
}
Это файл для отображения в формате pdf
Комментарии:
1. спасибо, дроид, но я должен прочитать pdf-файл по URL-адресу, а не из файла. У вас есть какие-либо идеи о том, как читать содержимое pdf с URL
Ответ №2:
Во-первых, в Android нет поддержки pdf, поэтому вам нужно открыть его в каком-либо другом приложении, таком как adob, или, если вы хотите сделать это правильно, вам нужно загрузить библиотеку, такую как vudroid и apdfviewer .
apdfviewer очень хорош, но нет поддержки компиляции исходного кода, на самом деле все библиотеки работают с c в бэкэнде, поэтому вам нужно установить ndk.
Vudroid работает медленно, но вы можете легко скомпилировать.
Я надеюсь, что это вам поможет.