2015-10-13 2 views
0

У меня есть div с содержимым с id как «divDownload». В содержимом div у меня есть панель с несколькими повторителями и некоторыми таблицами и ярлыками и так далее. Я хочу загрузить этот div как pdf, когда пользователь нажимает кнопку загрузки. Для этого я использую jsPDF Library. Но он загружает пустой PDF-файл.jsPDF загружает EMPTY PDF

HTML страницы:

<asp:Button ID="btnDownload" runat="server" Text="Download" /> 

<div id="divDownload"> 
    <asp:Panel ID="pnldownload" runat="server"> 
     // repeaters 
     //tables 
     //labels 
    </Panel> 
</div> 

<div id="noprint"></div> 

функция JavaScript:

$(document).ready(function() { 
     $("#<%= btnDownload.ClientID %>").click(function (e) { 

      var pdf = new jsPDF('p', 'pt', 'a4'); 
      var source = $("#divDownload"); 

      alert(source); 
      specialElementHandlers = { 
       // element with id of "bypass" - jQuery style selector 
       '#noprint': function (element, renderer) { 
        // true = "handled elsewhere, bypass text extraction" 
        return false; 
       } 
      }; 
      pdf.fromHTML(
      source, 
      15, 
      15, { 
       'width': 150, 
       'elementHandlers': specialElementHandlers 
      }); 
      pdf.save('test.pdf'); 


     }); 
    }); 

Может кто-нибудь, пожалуйста, помогите мне, как решить это? Искал много и пробовал разные способы в StackOverFlow, но не повезло.

+0

Получаете ли вы какие-либо ошибки на стороне клиента при проверке консоли JavaScript браузера в инструментах разработки? – mason

ответ

1

@Abhi,

jsPdf работает с HTML таблиц.

Поэтому вы должны указать идентификатор таблицы html, а не div, как вы пытаетесь. Попробуйте использовать таблицу html.

Надеюсь, это поможет.

0

Я использовал:

var source = $("#divDownload").html; 

Также я использовал true для #noprint.

Надеюсь, это поможет вам!

0

Я попробовал еще раз и следующее полный код:

 var pdf = new jsPDF('p', 'pt', 'a4'); 
     var source = $("#divDownload").html(); 

     specialElementHandlers = { 
      // element with id of "bypass" - jQuery style selector 
      '#noprint': function (element, renderer) { 
       // true = "handled elsewhere, bypass text extraction" 
       return true; 
      } 
     }; 

     pdf.fromHTML(
     source, 20, 20, { 'width': 150, 
      'elementHandlers': specialElementHandlers 
     }, 

     function (dispose) { 
      // dispose: object with X, Y of the last line add to the PDF 
      //   this allow the insertion of new lines after html 
      pdf.save('Test.pdf'); 
     }, margins); 

Пожалуйста, дайте мне знать, если он работает или не работает. Удалось решить эту проблему! Благодаря!

Смежные вопросы