If you using CiviMail for sending newsletter than you can view the html snippet that was sent as a email body. To view the html you can go navigate to Mailings >> Scheduled and Send Mailing.
Find the mailing/newsletter name you want to convert into PDF and then click on report link besides the name. You will be redirected to CiviMail Report: [Name of Mailing] page.
Under Content / Components section you will see View Complete Message link. Open the link in new tab to see the content that was sent.
You can print this page using any one of the following method:
- Use browser print option to Print as PDF
- Use wkhtmltopdf to print the page using the url
// example for drupal 7.
// http://yoursite.com/civicrm/mailing/view?reset=1&id=1
$ wkhtmltopdf content-url newsletter.pdf
- Use online tool to print pdf using url.
- Use php to convert content of page into pdf.
Note: For #2 and #3 you will need to set CiviMail: view public CiviMail content permission for Anonymous user.
HTH
Pradeep