Synopsis

With Pdfcrowd you can create PDFs in your applications using the HTML to PDF API. Use it to convert custom HTML code, HTML file or URL. Read more about available methods on Pdfcrowd PHP API documentation page.
More about module and requirements on module sandbox page.

Clone and review

git clone --branch 7.x-1.x http://git.drupal.org/sandbox/zaporylie/2425337.git pdfcrowd
cd pdfcrowd

pareview.sh

http://pareview.sh/pareview/httpgitdrupalorgsandboxzaporylie2425337git

You can find many other HTML to PDF solutions designed for Drupal, like

  • FillPDF
  • PDF using mPDF
  • PDF Version

etc.
Pdfcrowd module was developed to use pdfcrowd.com API as a conversion engine in custom modules.

Manual reviews of other projects

https://www.drupal.org/node/2326223#comment-9642277
https://www.drupal.org/node/2423361#comment-9642373
https://www.drupal.org/node/2053373#comment-9642395

Comments

jadhavdevendra’s picture

Manual Review

Individual user account
Yes: Follows the guidelines for individual user accounts.
No duplication
No: Google search gave me couple of modules. https://www.drupal.org/project/print https://www.drupal.org/project/pdf_using_mpdf Can you please specify those on project page as related modules and also how your module is different than others.
Default Branch
Yes: Default branch set.
Licensing
Yes: Follows the licensing requirements.
3rd party code
Yes: Third party code is used via library.
README.txt/README.md
Yes: Present
Code long/complex enough for review
Yes: Follows the guidelines for project length and complexity.

zaporylie’s picture

Issue summary: View changes

Thanks for your review. I've listed some similar modules on project page and also here, in issue summary. Pdfcrowd module integrates Drupal with pdfcrowd.com conversion engine (that's first module which is doing it for Drupal) and is designed for module developers who need HTML to PDF conversion in their own modules.

PA robot’s picture

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)

Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).

I'm a robot and this is an automated message from Project Applications Scraper.

k_zoltan’s picture

Automated Review

Review of the 7.x-1.x branch (commit 0b2fd98):

No automated test cases were found, did you consider writing Simpletests or PHPUnit tests? This is not a requirement but encouraged for professional software development.

Manual Review

Individual user account
Yes: Follows the guidelines for individual user accounts.
No duplication
No: Causes module duplication and/or fragmentation.
Master Branch
Yes: Follows the guidelines for master branch.
Licensing
Yes: Follows the licensing requirements.
3rd party assets/code
Yes: Follows the guidelines for 3rd party assets/code.
README.txt/README.md
Yes: Follows the guidelines for in-project documentation and/or the README Template.
Code long/complex enough for review
Yes: Follows the guidelines for project length and complexity.
Secure code
[Yes: Meets the security requirements. / No: List of security issues identified.]
Coding style & Drupal API usage
[List of identified issues in no particular order. Use (*) and (+) to indicate an issue importance. Replace the text below by the issues themselves:
  1. (*) Major finding, needs work
  2. (+) Release blocker
  3. Just a recommendation
  4. ...]

The starred items (*) are fairly big issues and warrant going back to Needs Work. Items marked with a plus sign (+) are important and should be addressed before a stable project release. The rest of the comments in the code walkthrough are recommendations.

If added, please don't remove the security tag, we keep that for statistics and to show examples of security problems.

This review uses the Project Application Review Template.

Suggestions:

You should implement the hook_requirements since you need an extra asset:
https://api.drupal.org/api/drupal/modules!system!system.api.php/function...

andeersg’s picture

Status: Needs review » Reviewed & tested by the community

Manual Review

Individual user account
Yes: Follows the guidelines for individual user accounts.
No duplication
Yes: I think that this module is different enough, because it's made as a module for developers. It's a easy way to generate PDFs in your custom module.
Master Branch
Yes: Follows the guidelines for master branch.
Licensing
Yes: Follows the licensing requirements.
3rd party assets/code
Yes: Follows the guidelines for 3rd party assets/code.
README.txt/README.md
Yes: Follows the guidelines for in-project documentation and/or the README Template.
Code long/complex enough for review
Yes: Follows the guidelines for project length and complexity.
Secure code
Yes: Meets the security requirements.

I tested the module with my API key and it works, the input is rendered as a PDF and everything is working.

This review uses the Project Application Review Template.

zaporylie’s picture

Issue summary: View changes
zaporylie’s picture

Issue summary: View changes
zaporylie’s picture

Issue summary: View changes
Issue tags: +PAreview: review bonus
zaporylie’s picture

7.x-1.x branch (commit 64cd6d5):

  • Handle API errors (prevent WSOD)
  • Delete module variables on uninstall
  • Implements hook_requirements() for cURL.

Thanks for all reviews so far.

mpdonadio’s picture

Assigned: Unassigned » mpdonadio

Assigning to myself for next review. Likely, tomorrow.

mpdonadio’s picture

Automated Review

Review of the 7.x-1.x branch (commit 64cd6d5):

  • No automated test cases were found, did you consider writing Simpletests or PHPUnit tests? This is not a requirement but encouraged for professional software development.

This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.

Manual Review

Individual user account
Yes: Follows the guidelines for individual user accounts.
No duplication
Yes: Does not cause module duplication and/or fragmentation. Addressed; using SaaS makes it distinct.
Master Branch
Yes: Follows the guidelines for master branch.
Licensing
Yes: Follows the licensing requirements.
3rd party assets/code
Yes: Follows the guidelines for 3rd party assets/code.
README.txt/README.md
Yes: Follows the guidelines for in-project documentation and/or the README Template. Kinda lean, though.
Code long/complex enough for review
Yes: Follows the guidelines for project length and complexity.
Secure code
Yes: Meets the security requirements.

Nothing jumped out at me.

Coding style & Drupal API usage

The README should have the URL for obtaining the pdfcrowd library.

The README should mention cURL as a requirement.

pdfcrowd_load_library() should really use drupal_static() to make the Pdfcrowd() library a singleton w/ pdfcrowd_load_library() as the access function.

pdfcrowd_load_library() needs a proper docblock. See https://www.drupal.org/node/1354

I don't think you need the drupal_exit() in pdfcrowd_delivery_display(), as the menu system will do this for you.

(+) I think pdfcrowd_delivery_display should maybe call drupal_render_page() instead of render()?

Read through node_menu for the $items['node/%'] entry. I am not convinced that calling node_view as your menu callback is quite right.

(+) pdfcrowd_node needs to delete the variables that it creates, and note that you need to be able to make this work though view mode creation and deletion.

Probably want to add the US paper sizes to pdfcrowd_textarea().

Perosnally, I would add a permission to be able to view PDF versions of nodes. SOmething to think about for later.

The starred items (*) are fairly big issues and warrant going back to Needs Work. Items marked with a plus sign (+) are important and should be addressed before a stable project release. The rest of the comments in the code walkthrough are recommendations.

Assigning to @er.pushpinderrana for a final look, if he has time.

If added, please don't remove the security tag, we keep that for statistics and to show examples of security problems.

This review uses the Project Application Review Template.

pushpinderchauhan’s picture

Assigned: pushpinderchauhan » Unassigned
Status: Reviewed & tested by the community » Fixed

NO commit after 64cd6d5 so no change in automated review.

Nothing major jumped out at me after a manual scan and others recommendations are already covered by mpdonadio, so...

Thanks for your contribution, Jakub Piasecki!

I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Thanks to the dedicated reviewer(s) as well.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.