La maggior parte delle altre risposte sembra aver trascurato il fatto che nella tua domanda manca una parte fondamentale di informazioni - non ci hai detto se e in che modo i documenti che stai per leggere e scrivere sono correlati!
La tua applicazione ha qualcosa di simile a un "oggetto documento" e lo scrive prima in un file PDF, quindi in seguito legge nuovamente lo stesso file in un oggetto documento simile? O viceversa, legge i PDF in un documento, apporta alcune modifiche e salva di nuovo lo stesso documento in un nuovo PDF? Quindi leggere e scrivere dovrebbero essere considerati una sola responsabilità. Questo potrebbe essere il caso se la tua applicazione è o contiene qualcosa come un componente "PDF editor" o un "PDF manipulation toolkit".
Tuttavia, se una parte dell'applicazione crea alcuni file PDF, ad esempio in un componente di reporting, e un'altra parte non correlata dell'applicazione legge diversi PDF (ad esempio, un programma di valutazione degli allegati di posta elettronica per un motore di ricerca) e la rappresentazione interna di questi ultimi PDF non ha nulla in comune con il primo caso d'uso, quindi tali compiti sono responsabilità diverse.
Soprattutto per il PDF, questo caso di secondo utilizzo è il caso che ho visto molto più spesso in diversi tipi di applicazioni. Ci sono molte più librerie / componenti là fuori che supportano solo la creazione di PDF, e solo un numero molto più piccolo che supporta anche la lettura di PDF. Se si intende utilizzare una sola libreria per generare i file PDF e una completamente diversa per leggere i PDF, dovrebbe essere evidente che la lettura e la scrittura in PDF saranno responsabilità separate.