gpt4 book ai didi

c++ - 移至 pdf 中的书签或特定页面

转载 作者:行者123 更新时间:2023-11-30 05:43:16 29 4
gpt4 key购买 nike

我想打开一个 pdf 文件并移动到 C++ 和 qt 程序中的特定书签。根据我的研究,我们可以使用 URL 和命令提示符转到书签。使用 URL 具有特殊格式,如:fileName.pdf#page=3它在命令提示符下工作,但不与 C++ 程序中的 system() 函数一起工作。

第二种方法需要确定acrobat.exe的安装目录,但每次都找目录比较麻烦。

有没有更简单的方法?为什么第一个解决方案不起作用?

最佳答案

我使用:

CString params;
params.Format(_T("/A \"page=%d\" \"%s\"")
, page
, (LPCTSTR)pdf
);
::ShellExecute(AfxGetMainWnd()->GetSafeHwnd(), _T("open"), pdf_reader, params, NULL, SW_SHOW);

“pdf_reader”是 Acrobat.exe 的路径。我得到这样的:

CString  pdf_reader;
int hinst = (int)(::FindExecutable(pdf, NULL, pdf_reader.GetBuffer(1024)));
pdf_reader.ReleaseBuffer();
if(hinst > 32){

}
else{
CString csmess = _T("Error encountered while trying to load the helpfile:");
if(hinst == 0){
csmess += _T("\nThe system is out of memory or resources.");
}
else if(hinst == 31){
csmess += _T("\nThere is no association for pdf - file type.");
csmess += _T("\nInstall Adobe Reader (R) first.");
}
else if(hinst == ERROR_FILE_NOT_FOUND){
csmess += _T("\nThe specified file was not found:");
csmess += _T("\n") ;
csmess += pdf;
}
else if(hinst == ERROR_PATH_NOT_FOUND){
csmess += _T("\nThe specified path was not found.");
}
else if(hinst == ERROR_BAD_FORMAT){
csmess += _T("\nThe .exe file is invalid (non-Win32 .exe or error in .exe image).");
}
else{
csmess += _T("\nError encountered in FindExecutable.");
}
AfxMessageBox(csmess);
return FALSE;
}

关于c++ - 移至 pdf 中的书签或特定页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302728/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com