# 金融报表分析 / 11.报告模板 / 公司公告

## `get_stockAnn_pdf(t)`

声明：function

获取指定股票指定公告原文(PDF) 注意： （1）一次性只能下载最多不超过300个文件，可以分批分次下载 （2）目前暂只支持下载1年内的公告

<!-- tags: 金融报表分析 11. 报告模板 公司公告 获取 查询 金融 报表 报告期 PDF -->

| 参数 | 类型  | 说明                                   |
| ---- | ----- | -------------------------------------- |
| `t`  | array | 要获得股票的公告详情，需要包含以下字段 |

返回：array

### 示例

范例01：调用 Get_StockAnn_PDF

```tsl
t := array(
    ("代码":"SH600519", "公布日":20260508, "公告标题":"600519 贵州茅台：贵州茅台关于回购股份实施进展的公告.PDF"),
    ("代码":"SH600519", "公布日":20260429, "公告标题":"600519 贵州茅台：贵州茅台关于召开2025年度及2026年第一季度业绩说明会的公告.PDF"),
    ("代码":"SH600519", "公布日":20260425, "公告标题":"600519 贵州茅台：贵州茅台2026年第一季度报告.PDF"),
    ("代码":"SH600519", "公布日":20260425, "公告标题":"600519 贵州茅台：贵州茅台2026年第一季度主要经营数据公告.PDF"),
    ("代码":"SH600519", "公布日":20260417, "公告标题":"600519 贵州茅台：贵州茅台2025年度独立董事述职报告（王鑫）.PDF"));
```

范例02：1、获得要下载的公告列表

```tsl
// 1、获得要下载的公告列表
t := select *
from infoTable 122
of getbk('沪深300')
where ['公布日']=20260430 and ['公告类型(一级)']='董、监、股东大会公告'
order by ['']
end;
return t;
```

范例03：1、指定要下载的公告列表

```tsl
// 1、指定要下载的公告列表
t := array(
    ("代码":"SH600519", "公布日":20260508, "公告标题":"600519 贵州茅台：贵州茅台关于回购股份实施进展的公告.PDF"),
    ("代码":"SH600519", "公布日":20260429, "公告标题":"600519 贵州茅台：贵州茅台关于召开2025年度及2026年第一季度业绩说明会的公告.PDF"),
    ("代码":"SH600519", "公布日":20260425, "公告标题":"600519 贵州茅台：贵州茅台2026年第一季度报告.PDF"),
    ("代码":"SH600519", "公布日":20260425, "公告标题":"600519 贵州茅台：贵州茅台2026年第一季度主要经营数据公告.PDF"),
    ("代码":"SH600519", "公布日":20260417, "公告标题":"600519 贵州茅台：贵州茅台2025年度独立董事述职报告（王鑫）.PDF"));
// 2、获得指定股票指定公告原文(PDF)
a := Get_StockAnn_PDF(t);
// 3、保存公告到本地
dir := "D:\\Downloads\\"; // 导出公告目录
for nI := 0 to length(a)-1 do
begin
    if a[nI]['标志']<>1 then continue;
    sName := a[nI]['文件名称'];
    iSize := a[nI]['文件大小'];
    Data := a[nI]['详情'];
    Ret := rdo2 WriteFile(rwBinary(), '', dir+'\\'+sName, 0, iSize, Data);
    a[nI]['下载成功'] := Ret;
end;
return a;
```
