Hide the whole empty row of table in VF page when rendered as pdf

You should be able to control the rendering of the row using <apex:variable>:

<apex:variable var="v" value="" rendered="{!NOT(ISBLANK(TheField__c))}">
  <tr>
    <td><apex:outputLabel rendered="if field is not blank"><td> 
  </tr>
</apex:variable>

<apex:outputPanel> would probably also work as long as you specify layout="none"


I tend to do this directly in HTML with some CSS hackery

<tr style="display: {!IF(ISBLANK(Field__c), 'none', 'table-row')};">
    <td>Content of your cell</td>
</tr>