我正在尝试在Android应用程序中保存pdf文件,数据(“ formData”)来自存储在Hashtable
const [videos, setVideos] = useState([])
const handleFormSubmit = async (searchterm) => {
const response = await fetch(
`https://www.googleapis.com/youtube/v3/search?${params.toString()}&q=${searchterm}`
)
const data = await response.json()
console.log(data)
setVideos(data.items)
console.log(videos)
}
PdfFillerImpl类:
InputStream ins = getResources().openRawResource(getResources().getIdentifier(FORM_NAME,
"raw", getPackageName()));
Context context = getApplicationContext();
PdfFillerImpl fill = new PdfFillerImpl();
byte[] data = fill.formFiller(formData, ins);
if(!saveFileToExternalStorage(data)){
Log.d("TAG", "FAILED TO SAVE FILE");
}
} saveFileToExternalStorage方法:
public class PdfFillerImpl implements PdfFiller {
@Override
public byte[] formFiller(Hashtable<String, String> formData, InputStream inputStream) throws IOException {
PDDocument pdfDoc = PDDocument.load(inputStream);
PDDocumentCatalog docCatalog = pdfDoc.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
for (Object fieldObj : acroForm.getFields()) {
PDTextField field = (PDTextField) fieldObj;
if (formData.containsKey(field.getFullyQualifiedName())) {
field.setValue(formData.get(field.getFullyQualifiedName()));
}
}
PDStream pdStream = new PDStream(pdfDoc);
byte[] data;
data = pdStream.toByteArray();
return data;
}