> For the complete documentation index, see [llms.txt](https://developers.weglot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.weglot.com/wordpress/use-cases/translate-pdf-with-gravity-pdf.md).

# Translate pdf with Gravity pdf

Below is an example of how to translate a PDF generated by Gravity PDF into the current language, based on the `gfpdf_pdf_html_output` filter documented here: <https://docs.gravitypdf.com/v6/developers/filters/gfpdf_pdf_html_output/>

```php
// Add this using the "Code Snippets" plugin.

// Create a new meta entry to store the weglot_language on Gravity Forms entries.
add_filter( 'gform_entry_meta', 'get_entry_meta', 10, 2 );
function get_entry_meta( $entry_meta, $form_id ) {
	$entry_meta['weglot_language'] = array(
		'label'                      => 'Weglot language',
		'is_numeric'                 => false,
		'is_default_column'          => true,
		'update_entry_meta_callback' => 'update_entry_meta',
	);
	return $entry_meta;
}

function update_entry_meta( $key, $lead, $form ) {
	return ''; // Return the value of the entry meta.
}

// Store the Weglot language on submission.
add_action( 'gform_after_submission', 'after_submission' );
function after_submission( $entry ) {
	$request_url_services = weglot_get_service( 'Request_Url_Service_Weglot' );
	$current_language     = $request_url_services->get_current_language()->getExternalCode();
	gform_update_meta( $entry['id'], 'weglot_language', $current_language );
}

// Translate the PDF using the stored language.
add_filter( 'gfpdf_pdf_html_output', function( $html, $form, $entry, $settings, $Helper_PDF ) {
	$weglot_language = gform_get_meta( $entry['id'], 'weglot_language' );
	if ( $weglot_language === weglot_get_original_language() ) {
		return $html;
	}
	$qp                    = new GFPDF\Helper\Helper_QueryPath();
	$pdf_translate_service = weglot_get_service( 'Pdf_Translate_Service_Weglot' );
	$html                  = $pdf_translate_service->translate_pdf( $html, $weglot_language );
	$wrapper               = $qp->html5( $html['content'] );
	return $wrapper->top( 'html' )->innerHTML5();
}, 10, 5 );
```
