Примеры генерации HTML в PDF в приложениях для Android
Если вам необходима конвертация HTML в PDF из приложений Android, вы можете использовать наш веб-сервис. Для этого вам не придется устанавливать или загружать какие-либо библиотеки или компоненты, достаточно реализовать простой API.
Это самый надежный, простой и удобный способ создания PDF версий документов для отчетов, счетов-фактур, накладных, электронных билетов и т.п. Можно создать нужную HTML-страницу и использовать ее в качестве источника для создания файла PDF или изображения.
Наш сервис может считывать любые веб-страницы  в интернет по передаваемоогу адресу и динамически генерировать HTML в PDF или файлы изображений. Сервис может обрабатывать достаточно сложные документы и макеты, в том числе ссылки на изображения, инструкции JavaScript, CSS.
Пример №1 - Преобразование HTML страницы в файл PDF в приложениях под Android
    
        public void ConvertWebPageToPDF()
{
        
            
    String value = "http://www.yandex.ru"
    String apiKey = "ВАШ_КЛЮЧ_API"; 
    String apiURL = "http://api.pdf4b.ru/pdf";
    HashMap<string, string> params = new HashMap<string, string>();
    params.put("apiKey", apiKey);
    params.put("value", value);
                                     
 
    // Call the API convert to a PDF
    InputStreamReader request = new InputStreamReader(Request.Method.Post, apiURL, new Response.Listener<byte[]>(){
        @Override
        public void onResponse(byte[] response)
        {
            try
            {
                if(response != null)
                {
                    File localFolder = new File(Environment.getExternalStorageDirectory(), "WebPageToPDF");
                    if(!localFolder.exists())
                    {
                        localFolder.mkdirs();
                    }
 
                    // Write stream output to local file
                    File pdfFile =  new File (localFolder, "mypdf.pdf");
                    OutputStream opStream = new FileOutputStream(pdfFile);
                    pdfFile.setWritable(true);
                    opStream.write(response);
                    opStream.flush();
                    op.close();
                }
            } catch (Exception ex)
            {
                Toast.makeText(getBaseContext(), "Ошибка генерации файла PDF!", Toast.LENGTH_LOG).show();
            }
        }
    });
}
    
 
Дополнительно смотрите список опций для генерации 
PDF или 
JPEGПример №2 - Преобразование HTML страницы в файл изображения, например JPEG в приложениях под Android
В данном примере мы получаем файл в формате JPEG, но вы можете установить форматы "png", "bmp" или "svg".
    
        public void ConvertWebPageToImage()
{
    String apiKey = "ВАШ_КЛЮЧ_API"; 
    String value = "http://www.yandex.ru" 
    String apiURL = "http://api.pdf4b.ru/pdf";
    HashMap<string, string> params = new HashMap<string, string>();
    params.put("apiKey", apiKey);
    params.put("value", value);
    params.put("OutputFormat", "jpg"); 
 
    // Call the API convert to a PDF
    InputStreamReader request = new InputStreamReader(Request.Method.Post, apiURL,
        new Response.Listener<byte[]>(){
        @Override
        public void onResponse(byte[] response)
        {
            try
            {
                if(response != null)
                {
                    File localFolder = new File(Environment.getExternalStorageDirectory(), "WebPageToPDF");
                    if(!localFolder.exists())
                    {
                        localFolder.mkdirs();
                    }
 
                    // Write stream output to local file
                    File pdfFile =  new File (localFolder, "my_image_file.jpg");
                    OutputStream opStream = new FileOutputStream(pdfFile);
                    pdfFile.setWritable(true);
                    opStream.write(response);
                    opStream.flush();
                    op.close();
                }
            } catch (Exception ex)
            {
                Toast.makeText(getBaseContext(), "Ошибка генерации файла PDF!", Toast.LENGTH_LOG).show();
            }
        }});
    }
    
 
Дополнительно смотрите список опций для генерации 
PDF или 
JPEGПример №3 - Преобразование исходного HTML кода  в файл PDF в приложениях под Android
Исходный код HTML может влючать в себя CSS, картинки и т.п
    
        public void ConvertHTMLStringToPDF()
{
    String apiKey = "ВАШ_КЛЮЧ_API"; 
    String value = "<h1>Некоторый <strong>текст</strong>строка HTML</h1>" <
    String apiURL = "http://api.pdf4b.ru/pdf";
    HashMap<string, string> params = new HashMap<string, string>();
    params.put("apiKey", apiKey);
    params.put("value", value);
 
    // Call the API convert to a PDF
    InputStreamReader request = new InputStreamReader(Request.Method.Post, apiURL,
        new Response.Listener<byte[]>(){
        @Override
        public void onResponse(byte[] response)
        {
            try
            {
                if(response != null)
                {
                    File localFolder = new File(Environment.getExternalStorageDirectory(), "WebPageToPDF");
                    if(!localFolder.exists())
                    {
                        localFolder.mkdirs();
                    }
 
                    // Write stream output to local file
                    File pdfFile =  new File (localFolder, "mypdf.pdf");
                    OutputStream opStream = new FileOutputStream(pdfFile);
                    pdfFile.setWritable(true);
                    opStream.write(response);
                    opStream.flush();
                    op.close();
                }
            } catch (Exception ex)
            {
                Toast.makeText(getBaseContext(), "Ошибка генерации файла PDF!", Toast.LENGTH_LOG).show();
            }
        }});
    }
    
 
Дополнительно смотрите список опций для генерации 
PDF или 
JPEGКласс InputStreamReader
Данный класс используется во всех примерах
    
        
class InputStreamReader extends Request<byte[]> {
    private final Response.Listener<byte[]> mListener;
    private Map<string, string> mParams;
    public Map<string, string> responseHeaders;
    public InputStreamReader(int method, String mUrl, Response.<byte[]> listener,
                             Response.ErrorListener errorListener, HashMap<string, string> params) {
         
        super(method, mUrl, errorListener);
        // Every time it should make new request, should not use cache
        setShouldCache(false);
        mListener = listener;
        mParams = params;
    }
    @Override
    protected Map<string, string> getParams()
            throws com.android.volley.AuthFailureError {
        return mParams;
    }
    @Override
    protected void deliverResponse(byte[] response) {
        mListener.onResponse(response);
    }
    @Override
    protected Response<byte[]> parseNetworkResponse(NetworkResponse response) {
        //Initialise local responseHeaders map with response headers received
        responseHeaders = response.headers;
        //Pass the response data here
        return Response.success(response.data, HttpHeaderParser.parseCacheHeaders(response));
    }
}
    
 
Дополнительно смотрите список опций для генерации 
PDF или 
JPEG